首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >显示存储在数据库中的地址的位置

显示存储在数据库中的地址的位置
EN

Stack Overflow用户
提问于 2018-06-03 03:13:40
回答 1查看 60关注 0票数 2

让我简要地解释一下我想要什么。我有一个包含2页的模块。一个用于创建新公司,另一个用于预览公司信息+编辑该公司信息。

一切都很好。现在,当我在表中单击其中一家公司时,它会打开"edit/IDOFORGANIZATIONHERE“,并显示所单击的组织(公司)的所有信息。

现在我需要实现谷歌地图的功能,以显示公司的位置基于公司的地址,城市,邮政编码和国家。

我已经成功地实现了Google Maps。

代码语言:javascript
复制
   this.gMapsService.getLatLan('London' )
          .subscribe(
            result => {
                this.__zone.run(() => {
                    this.lat = result.lat();
                    this.lng = result.lng();
                })
            },
            error => console.log(error),
            () => console.log('Geocoding completed!')
          );

在我的gMapsService中,我有以下内容

代码语言:javascript
复制
  import { Injectable, NgZone } from '@angular/core';
    import { GoogleMapsAPIWrapper } from '@agm/core';
    import { MapsAPILoader } from '@agm/core';
    import { Observable, Observer } from 'rxjs';
    import {} from '@types/googlemaps';

    declare var google: any;

    @Injectable()
    export class GMapsService extends GoogleMapsAPIWrapper{ 
        constructor(private __loader: MapsAPILoader, private __zone: NgZone) {
            super(__loader, __zone);
        }

        getLatLan(address) {
            console.log('Getting Address - ', address);
            let geocoder = new google.maps.Geocoder();
            return Observable.create(observer => {
                geocoder.geocode( { 'address': address}, function(results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        observer.next(results[0].geometry.location);
                        observer.complete();                    
                    } else {
                        console.log('Error - ', results, ' & Status - ', status);
                        observer.next({});
                        observer.complete();
                    }
                });
            })
        }
    }

现在,如果你看一下第一个代码片段,它将显示谷歌地图,中心是伦敦市,这也很好用。

现在我想把这个字符串London改为公司信息的值,比如

代码语言:javascript
复制
organization.address
organization.city
organization.postalcode
organization.countryname

如果我像这样编写它,this.gMapsService.getLatLan(this.address)或this.gMapsService.getLatLan(organization.address)代码可以成功编译,但在我的控制台中,我可以看到传递的地址是“未定义的”。

但是,我的地址在网页的html部分显示正常,上面写着

代码语言:javascript
复制
Address: {{organization ? organization.address : ''}}<br>

我现在想知道如何将显示在Address:之后的文本转换为需要与函数getLatLan一起传递的字符串。

我试过制作

let fulladdress = organization.address + organization...bla bla和传递的this.fulladdress,但它仍然显示地址、邮政编码、城市未定义

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-03 07:51:29

我已经自己修复了它,通过在函数中订阅组织的数据,即使它是在ngOnInit(){}中执行的。

不管怎样,谢谢你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50660306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档