Working Demo
Sie die Karte zweimal in BaseMapController
und eine weitere in inputController
initialisiert haben.
In BaseMapController
ersetzen
_map = BaseMapService.mapElement();
mit
$scope.map = BaseMapService.mapElement();
_map=$scope.map;
In inputController
ersetzen
BaseMapService.AutoComplete(_searchInputId).bindTo('bounds', BaseMapService.mapElement());
mit
BaseMapService.AutoComplete(_searchInputId).bindTo('bounds', $scope.map);
Hoffe, dass Sie Ihr Problem lösen.
Update:
In Ihrer Demo, die automatische Vervollständigung funktioniert gut, aber es ist nicht richtig abzubilden gebunden. Zum Beispiel, wenn Sie einen beliebigen Ort suchen, werden Sie diesen Ort auf der Karte nicht finden. Ich habe gerade den Fehler behoben, den Sie erwähnt haben.
Für die automatische Vervollständigung haben Sie Google API verwendet und für basemap
haben Sie Leaflet
verwendet.
Mein Vorschlag ist: Anstatt diese Vermischung beider Ansätze, entweder verwenden Leaflet.GoogleAutocomplete oder Google Maps JavaScript API
Aber die service.js das tun kann ?. service.js teilt die Map-Variable mit BaseMapController und Input.Controller. Ich muss das tun, aber in service.js? – pokaxperia
Und jetzt funktioniert der Eingang nicht: P – pokaxperia
Ich habe meine Antwort aktualisiert. –