Я использую Angular 5 для построения ряда точек (точек мониторинга) на карте Google.Мне бы хотелось, чтобы всплывающая подсказка (отображающая имя точки мониторинга) была ссылкой (на страницу о каждой точке мониторинга в моем приложении).Как я могу это сделать?
Я пробовал такие вещи, как:
toolTip: '<a>' + element.name + '</a>'
Не повезло.Кажется, не могу этого сделать, поскольку он находится в файле TS, а не в html.Мне нужно будет добавить туда тег [router-link], например
[routerLink]="['/site/', site.id ]"
Вот мой код Google из моего компонента Angular:
getOneSite(id) {
let observable = this.authService.getOneSite(this.current_site_hid)
observable.subscribe(data => {
this.current_site = data
this.markers = []
var newobj = {
lat: 0,
lng: 0,
toolTip: ""
}
var mapProp = {
center: new google.maps.LatLng(this.current_site.latitude, this.current_site.longitude),
zoom: 14,
mapTypeId: google.maps.MapTypeId.HYBRID
};
this.map = new google.maps.Map(this.gmapElement.nativeElement, mapProp);
this.map.setMapTypeId('roadmap')
var marker = new google.maps.Marker({ position: mapProp.center });
marker.setMap(this.map);
var infowindow = new google.maps.InfoWindow({
content: "<strong>" + this.current_site.name + "</strong>" + "<br>" + "Latitude: " + this.current_site.latitude + "<br>" + "Longitude: " + this.current_site.longitude
});
this.authService.getAllMonitoringPoints(this.current_site_hid)
.subscribe(data => {
this.monitoring_points = data
this.monitoring_points.forEach(element => {
newobj.lat = element.latitude
newobj.lng = element.longitude
newobj.toolTip = '<a>' + element.name + '</a>', element.latitude. element.longitude
this.markers.push(newobj)
newobj = {
lat: 0,
lng: 0,
toolTip: ""
}
console.log(this.markers)
});
infowindow.open(this.map, marker);
this.setMultipleMarker(this.markers, this);
})
})
}
setMultipleMarker(markers, self) {
markers.forEach(function (marker) {
(function (marker) {
let mark = new google.maps.Marker({ position: new google.maps.LatLng(marker.lat, marker.lng) });
let infowindow = new google.maps.InfoWindow({ content: marker.toolTip });
infowindow.open(self.map, mark);
mark.setMap(self.map);
})(marker)
})
}
Большое спасибо!Дайте мне знать, если я смогу что-то уточнить!