Я передаю правильную широту и долготу к карте, но она показывает старую карту, имеющую старый лат. Я знаю, что я делаю в этом что-то не так, но я не могу это понять. Мой проект в ионной структуре и для карты Я использую этот плагин для плагинов
Этот мой html-код
<div style="width:100%;height:200px" id="mapDisplay"></div>
Этот мой угловой код JS
var getLat = $scope.dealer.lat;
var getLng = $scope.dealer.lng;
var address = $scope.dealer.address;
var mapDiv = document.getElementById("mapDisplay");
const myGeoLocation = new plugin.google.maps.LatLng(getLat,getLng);
var map = plugin.google.maps.Map.getMap(mapDiv, {
'camera': {
'latLng': myGeoLocation,
'zoom': 15
}
});
map.addEventListener(plugin.google.maps.event.MAP_READY, function() {
map.addMarker({
'position': myGeoLocation,
'title': address
}, function(marker) {
marker.showInfoWindow();
});
});
Из документов плагина карты вы используете
Этот плагин генерирует только один экземпляр карты, используя метод Map.getMap(). В общем, вы можете создать несколько карт, но этот плагин не позволяет этого.
Поэтому ваш plugin.google.maps.Map.getMap
только захватывает существующий экземпляр, а не создает новый, а plugin.google.maps.event.MAP_READY
только один раз, в первый раз. Однако, глядя на исходный код, похоже, что экземпляр предоставляет метод удаления, который можно использовать для уничтожения существующего экземпляра и создания нового с новыми наборами координат при вызове обратного вызова, например: map.remove(function() {/** reset map coordinates **/}
** Дополнительно **
Если вам просто нужно отобразить карту с набором координат, вы можете сделать это, используя собственное приложение, передав lat/lon в плагин $ cordovaInAppBrowser. В качестве примера для iOS и Android у вас будет следующее:
IOS
$cordovaInAppBrowser.open('maps://?q=<latitude>,<longitude>', '_system');
Android
$cordovaInAppBrowser.open('geo:0,0?q=<latitude>,<longitude>', '_system');
И, наконец, вам нужно включить geo uri в свой файл config.xml следующим образом:
<allow-intent href="geo:*" />
Плагин не позволяет создавать несколько экземпляров карт. Подробнее.
Но вы можете добиться этого, используя этот код
var map = plugin.google.maps.Map.getMap(div);
map.clear();
map.off();
map.trigger("test");
map.addEventListener(plugin.google.maps.event.MAP_READY);