2015-12-03 3 views
2

directive.js:Google карта Автозумирование с несколькими маркерами в ионическом

.directive('map', function() { 
    return { 
    restrict: 'E', 
    scope: { 
     onCreate: '&' 
    }, 
    link: function ($scope, $element, $attr) { 
     function initialize() { 
     var mapOptions = { 
      center: new google.maps.LatLng(43.07493, -89.381388), 
      zoom: 16, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     var map = new google.maps.Map($element[0], mapOptions); 

     $scope.onCreate({map: map}); 

     // Stop the side bar from dragging when mousedown/tapdown on the map 
     google.maps.event.addDomListener($element[0], 'mousedown', function (e) { 
      e.preventDefault(); 
      return false; 
     }); 
     } 

     if (document.readyState === "complete") { 
     initialize(); 
     } else { 
     google.maps.event.addDomListener(window, 'load', initialize); 
     } 
    } 
    } 
}); 

HTML:

<map on-create="mapCreated(map)" data-tap-disabled="true"></map> 

controller.js:

//Map controller 
$scope.mapCreated = function (map) { 
    $scope.map = map; 
    $scope.map.setCenter(new google.maps.LatLng(latitude1, longitude1)); 
    createMarker(latitude1, longitude1, icon1); 
    createMarker(latitude2, longitude2, icon2);    

    //Create marker 
    var createMarker = function (lat, long, icon) { 
     var marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(lat, long), 
      map: map, 
      icon: icon, 
     }); 
    } 
}; 

Скажем «latitude1, longitude1, latitude2, longitude2, icon1 и icon2 ".

С моим кодом ничего не получилось, но он не уменьшил масштаб карты, чтобы показать все маркеры. Я провел некоторое исследование раньше, но я не нашел подходящего ответа. Спасибо за помощь.

+0

Спасибо, но он все еще не работает. –

+0

У вас есть проблема с локальным, когда вы запускаете ионную подачу, в устройстве или в обоих? – ezain

+0

как устройство, так и браузер. Спасибо. –

ответ

1

Вам необходимо отключить data-tap http://ionicframework.com/docs/api/page/tap/ для разрешения события googlemaps handle tap.

<ion-view> 
... 
<ion-content scroll="false"> 
    <map on-create="mapCreated(map)" data-tap-disabled="true"></map> 
</ion-content> 
... 
</ion-view> 
+0

спасибо, я уже попробовал поместить в свой код (data-tap-disabled = "true"), но он все еще не работал. Ничего не изменилось, моя карта Google по-прежнему не уменьшает масштаб и не увеличивает масштаб, чтобы показать все маркеры. –

+0

Странно, вы видели этот ионный пример? https://github.com/driftyco/ionic-starter-maps. Вы также должны отключить прокрутку. – ezain

+0

Да, уже видел. почти мой код такой же, но этот пример не показывал несколько маркеров. –

Смежные вопросы