Как нарисовать карту, используя новый Lat Lng в ионном

0

Я передаю правильную широту и долготу к карте, но она показывает старую карту, имеющую старый лат. Я знаю, что я делаю в этом что-то не так, но я не могу это понять. Мой проект в ионной структуре и для карты Я использую этот плагин для плагинов

Этот мой 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();
  });
});
  • 0
    Я думаю, что последние где-то жестко запрограммированы. Попробуйте с реальными значениями для тестирования.
  • 0
    нет, я передаю динамические значения. Я думаю, что Div не обновить
Показать ещё 6 комментариев
Теги:
ionic-framework
google-maps
cordova
cordova-plugins

2 ответа

0

Из документов плагина карты вы используете

Этот плагин генерирует только один экземпляр карты, используя метод 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:*" />
  • 0
    Это действительно помогает мне, спасибо.
  • 0
    Отметьте вопрос, был ли он вам полезен :)
0

Плагин не позволяет создавать несколько экземпляров карт. Подробнее.

Но вы можете добиться этого, используя этот код

var map = plugin.google.maps.Map.getMap(div);
  map.clear();
  map.off();
  map.trigger("test");
  map.addEventListener(plugin.google.maps.event.MAP_READY);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню