2016-08-09 24 views
3

我正在尝试从Google地图中点击或保存离子事件时获取坐标。如何获取坐标值,同时在离子谷歌地图中长时间轻按/按住

虽然抱着我在浏览器控制台中获取值没有进入设备。

如何清除此问题?我需要在使用离子框架[谷歌地图]的移动应用程序中持有/录像时获取值。

任何帮助将不胜感激。提前感谢。

.controller('HomeCtrl', function ($scope, $rootScope, $cordovaGeolocation, $ionicLoading, $ionicGesture) { 

     $ionicLoading.show({ 
      template: '<ion-spinner icon="bubbles"></ion-spinner><br/>Acquiring location!' 
     }); 

     var posOptions = { 
      enableHighAccuracy: true, 
      timeout: 20000, 
      maximumAge: 0 
     }; 
     $cordovaGeolocation.getCurrentPosition(posOptions).then(function (position) { 
      var lat = position.coords.latitude; 
      var long = position.coords.longitude; 
      $rootScope.currentlat = lat; 
      $rootScope.currentlong = long; 
      var myLatlng = new google.maps.LatLng(lat, long); 
      $rootScope.myLatlng = myLatlng; 
      var mapOptions = { 
       center: myLatlng, 
       zoom: 10, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 

      var map = new google.maps.Map(document.getElementById("map"), mapOptions); 

      $scope.map = map; 
      marker = new google.maps.Marker({ 
       position: myLatlng, 
       map: $scope.map 
      }); 

      var element = angular.element(document.querySelector('#map')); 
      $ionicGesture.on('hold', function(e){ 
       $scope.$apply(function() { 
        alert('hold happens'); 
        google.maps.event.clearListeners(map, 'click'); 
        google.maps.event.addListener(map, 'click', function(event) { 
         alert(event.latLng); 
        }); 
       }); 
      }, element); 

      google.maps.event.addListener(marker, "click", function (event) { 
      }); 

      $ionicLoading.hide(); 
     }, function (err) { 
      $ionicLoading.hide(); 
      console.log(err); 
     }); 

    } 

回答

2

我觉得你的问题是,您使用

$ionicGesture.on('hold')

标志性的使用科尔多瓦和科尔多瓦谷歌地图都有自己的事件处理程序的“地图”是相关的本地视图不会的JavaScript。你可以详细阅读here

因此,一旦设备已准备就绪

var map  = new google.maps.Map(document.getElementById("map"), mapOptions), 
     longClick = plugin.google.maps.event.MAP_LONG_CLICK; 

    map.on(longClick, function (latLng) { 

    var selectedLatLocation = latLng.lat.toString(); 
    var selectedLongLocation = latLng.lng.toString(); 

    alert(selectedLatLocation, selectedLongLocation); 


    });