当我单击任何地方或打开信息窗口时,我想从agm-map中获取确切的坐标

时间:2018-08-20 10:55:31

标签: javascript angular google-maps angular6 angular-google-maps

This is image please see

<agm-map (mapClick)="mapClicked($event)" [latitude]="latitude" [longitude]="longitude" [scrollwheel]="false" [zoom]="zoom">
        <agm-marker (markerClick)="mapClicked(place)" *ngFor="let place of searchplace" [iconUrl]="place.icon" [latitude]="place.geometry.location ? place.geometry.location.lat() : ''"
          [longitude]="place.geometry.location ? place.geometry.location.lng() : ''">        
        </agm-marker>       
      </agm-map>

我正在使用agm-map,在任何位置单击时都想获取coords / placeId。 我只想获取此地点信息以获取地点详细信息。我使用了mapClick函数,但它没有给我特定的地点信息。每当我单击任何地方并打开信息窗口时,请帮助我获取cords / placeId。

1 个答案:

答案 0 :(得分:0)

获取 placeId 所能做的就是监听mapReady事件。触发时,您将获得地图的实例,然后可以向其中添加点击侦听器。当用户点击地图上的某个地点时,如果它是Google Maps上的一个地点(又称“ POI ”或(兴趣点)),那么您将获得一个包含地点的 placeId

map.component.html:

<agm-map (mapReady)="onMapReady($event)" ... ></agm-map>

map.component.ts:

public onMapReady(map) {
  map.addListener('click', (e) => {
    ...
  });
}

在上面的代码中,“ e”将是包含 placeId 的对象(如果用户单击了某个位置)。如果用户未单击某个位置,则不会返回任何 placeId

注意:我认为他们正在采用一种(特定于AGM的)方式通过mapClick事件返回 placeId ,但是暂时-在实现之前,发布,这应该可以工作。