loadMap(){
this.geolocation.getCurrentPosition().then((position) => {
let latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
let mapOptions = {
center: latLng,
position: latLng,
zoom: 15,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions);
this.addMarker();
}, (err) => {
console.log(err);
});
}
startTracking() {
this.isTracking = true;
this.trackedRoute = [];
this.positionSubscription = this.geolocation.watchPosition()
.pipe(
filter((p) => p.coords !== undefined) //Filter Out Errors
).subscribe(data => {
setTimeout(() => {
this.trackedRoute.push({ lat: data.coords.latitude, lng: data.coords.longitude });
this.redrawPath(this.trackedRoute);
}, 0);
});
}
redrawPath(path) {
if (this.currentMapTrack) {
this.currentMapTrack.setMap(null);
}
if (path.length > 1) {
this.currentMapTrack = new google.maps.Polyline({
path: path,
geodesic: true,
strokeColor: '#ff00ff',
strokeOpacity: 1.0,
strokeWeight: 3
});
this.currentMapTrack.setMap(this.map);
}
}
<div #map id="map"></div>
Я работаю в приложении в Ionic 3, которое отображает текущее положение на карте, а также нажмите кнопку начала трека, мы должны добавить ломаную линию между лат и lang.i знаюЕсть несколько способов рисовать полилинии. Моя идея состоит в том, чтобы извлечь широты, длинные координаты маркера, сохранить их в массиве, а затем установить его как «путь» для рисования полилинии, но у меня возникают проблемы, когда полилинии не прорисовываются вкарта.проверьте наш код ниже: