2017-11-15 5 views
0

ich verwende Ionic 2 und die google maps cordova plugin.Ionic 2 - Google Maps Nativ: Marker Click-Ereignis nicht ausgelöst

"cordova-plugin-Googlemap": "^ 2.0.11"

Ich kann nicht diese Zuhörer bekommen zu schießen.

wird die Markierung auf der Karte hinzugefügt, aber das Click-Ereignis nicht den Alarm nicht ausgelöst.

Danke für die Hilfe!

let latlng = new LatLng(spot.lat, spot.long); 
    let markerOptions: MarkerOptions = { 
     'position': latlng, 
     'animation': 'drop' 
     }; 


     this.map.addMarker(markerOptions).then((marker: Marker) => { 
     marker.addEventListener(GoogleMapsEvent.MARKER_CLICK).subscribe(e => { 
      alert('foo'); 
     }); 
     }); 

Weitere Informationen

@ionic-native/core: 'version': 3.7.0

@ionic-native/google-maps: 'version': '4.3.0'

import { GoogleMaps, GoogleMap, GoogleMapsEvent, GoogleMapOptions, CameraPosition, MarkerOptions, LatLng, Marker } from '@ionic-native/google-maps';

ich durch mehrere latlong Koordinaten am Looping und sie auf der Karte hinzufügen. Das Ereignis wird für keines von ihnen ausgelöst.

Wenn ich versuche, die auch nur eine der Markierungen zu anbringen es funktioniert auch nicht.

Schließlich, wenn ich eine andere Alarmbereitschaft versetzen sie nicht schießen. Ist es möglich, dass das Zusatzmarkerversprechen nicht aufgelöst wird?

this.map.addMarker(markerOptions).then((marker: Marker) => { 
    alert('in here'); 
marker.addEventListener(GoogleMapsEvent.MARKER_CLICK).subscribe(e => { 
    alert('foo'); 
}); 
}); 

enter image description here

+0

Welche Versionen von '@ ionic-native/core' und' @ ionic-native/google-maps' verwenden Sie? Zumindest der obige Code sollte funktionieren. – wf9a5m75

+0

@ wf9a5m75 Ich habe zusätzliche Informationen hinzugefügt. Danke für die Hilfe. Ich denke, es sollte funktionieren, nicht sicher, was ich falsch mache – srm

Antwort

1

sollten Sie dies versuchen. Es funktionierte gut für mich

marker.on(GoogleMapsEvent.MARKER_CLICK).subscribe((latLng: LatLng) => { 
    // do something 
}); 
+0

Leider ist der Code, den Sie geschrieben haben, funktioniert nicht. – srm

0

Sie müssen @ionic-native/[email protected] und @ionic-native/[email protected] verwenden. Mindestens @ionic-native/[email protected] ist zu alt.

$> npm uninstall @ionic-native/core @ionic-native/google-maps 
$> cordova plugin rm cordova-plugin-googlemaps 

$> npm install @ionic-native/[email protected] @ionic-native/[email protected] 
$> cordova plugin add cordova-plugin-googlemaps --variable API_KEY_FOR_ANDROID="..." --variable API_KEY_FOR_IOS="..." --no-fetch 

Vom @ionic-native/[email protected] wird die Art und Weise eine Karte zu schaffen geändert.

export class HomePage { 

    map: GoogleMap; 

    constructor() { // <-- no longer need to define in constructor 
    } 

    ionViewDidLoad() { 
    this.loadMap(); 
    } 

    loadMap() { 
    this.map = GoogleMaps.create('map_canvas'); // <-- changed 
    this.map.one(GoogleMapsEvent.MAP_READY).then(() => { 
     ... 
    }); 
    } 
} 
+0

Immer noch kein Glück. Grrrr. Die Karte wird erstellt und die Markierungen befinden sich auf der Karte, aber immer noch kein Klickereignis. – srm

+0

Könnten Sie bitte ein Beispiel geben, wie Sie der Karte einen Marker hinzufügen würden? Muss es in der One-Funktion sein? Ich lade gerade die Marker jedes Mal, wenn die Kamera aufhört, sich zu bewegen. – srm

+0

Konnten Sie die Dokumentseite sofort lesen, bevor Sie fragen? https://github.com/mapsplugin/cordova-plugin-googlemaps-doc/blob/master/v2.0.0/class/BaseArrayClass/constructor/README.md https://docs.google.com/presentation/d /1zlkmoSY4AzDJc_P4IqWLnzct41IqHyzGkLeyhlAxMDE/edit#slide=id.p – wf9a5m75