Угловые Карты Google - Карты Информация о Windows - PullRequest
1 голос
/ 22 мая 2019

Я работаю над угловым приложением, в котором реализовал Angular Google Maps (angular-maps.com). Когда я нажимаю на место на карте, оно открывает стандартное информационное окно карт Google. Мне нужно заменить это стандартное информационное окно на пользовательское информационное окно с некоторыми кнопками моего приложения. Я не знаю, как это сделать на угловых и угловых картах Google. Кто-нибудь знает, как манипулировать этим стандартным информационным окном, не допустить его открытия и сбора всей имеющейся на нем информации и поместить его в собственное информационное окно?

Я пытался реализовать javascript внутри ngZone, чтобы запустить его вне угла, но безуспешно, я попытался отыскать какую-то заранее подготовленную директиву в угловых картах, но не смог ее найти

это код, который инициализирует карту:

 ngOnInit() {
this.mapsAPILoader.load().then(
  () => {
    const autocomplete = new google.maps.places.Autocomplete(this.searchElement.nativeElement, {types: ['establishment'] });
    autocomplete.addListener('place_changed', () => {
      this.ngZone.run(() => {
        const place: google.maps.places.PlaceResult = autocomplete.getPlace();
        if (place.geometry === undefined || place.geometry === null) { return; } else {
          const poi: Poi = {
            uid: place.place_id,
            title: place.name,
            coords: {lat: place.geometry.location.lat(), lng: place.geometry.location.lng()},
            draggable: false,
        };
          this.temporaryMarker(poi);
        }
      });
    } );
  }
);

}

это моя функция, которая обрабатывает "mapClick" угловых карт Google:

 mapClicked(e: MouseEvent) {
console.log('mapClicked()=>', e);
if (e.placeId) {
  this.getPlaceDetails(e.placeId).subscribe(place => this.openInfoWindow(place));
}
this.clickedLat = e.coords.lat;
this.clickedLng = e.coords.lng;
this.infoWindowIsOpen = true;
const preventInfoWindow = // HERE IS WHERE I SUPPOSE THAT SHOULD HAVE MY CODE
// service.getDetails(request, this.openInfoWindow(place, status));
  }

до сих пор, любой щелчок МАРКЕРОМ, которым я могу манипулировать его информационным окном, но это было легко. Что я не могу сделать, так это манипулировать информационными окнами из мест на картах Google, это стандартные точки интереса, которые карты Google показывают вам. Они должны быть в моем пользовательском интерфейсе, но мне нужно обрабатывать их информацию, предотвращать открытие стандартного информационного окна и открытие пользовательского информационного окна.

...