【发布时间】:2018-06-05 20:01:30
【问题描述】:
我基本上有一个 Ionic 应用程序,它可以让用户点击地图并将其返回给用户,没有问题。我的问题是当用户在地图上多次点击时,我添加了标记以告知用户他选择的位置,我希望这样每次他点击地图时,标记的数量都会保持为一个。
【问题讨论】:
标签: javascript google-maps typescript ionic-framework
我基本上有一个 Ionic 应用程序,它可以让用户点击地图并将其返回给用户,没有问题。我的问题是当用户在地图上多次点击时,我添加了标记以告知用户他选择的位置,我希望这样每次他点击地图时,标记的数量都会保持为一个。
【问题讨论】:
标签: javascript google-maps typescript ionic-framework
也许您正在创建一个新标记并使用marker.setMap(map); 这将创建一个新标记并将其添加到当前地图。
不要定义新的标记,而是使用 setPosition 来改变当前标记的位置:
marker.setPosition(position);
其中位置是从点击位置开始的 {lat,lng} 数组;不要忘记将标记定义为全局变量,这样您就可以在创建地图和更新位置时使用它;
var marker;
function initMap() {
//Here you initialize the map and marker then
marker.setMap(map);
}
function updateMarkerPosition(lat,lng){
marker.setPosition({lat:" + lat +",lng:"+ lng+ "});
}
【讨论】:
export class className{ marker: any; } ionViewDidLoad(){ this.initMap(); } initMap(){ this.marker = new google.maps.Marker({map: map}); } google.maps.event.addListener(map, 'click', event=>{ this.updateMarkerPosition(event.latLng(), event.latLng.lng()); } } updateMarker Position(lat, lng){ this.marker.setPosition({ lat: lat, lng: lng }) }