2016-08-09 4 views
3

Ich versuche, Koordinaten zu erhalten, während tippen oder halten Sie Ereignisse in ionischen von Google Maps.Wie bekomme ich Koordinatenwerte während langer Tippen/halten in ionischen Google Maps

Während ich halte bekomme ich Werte in der Browser-Konsole nicht in Gerät bekommen.

Wie lösche ich dieses Problem ?. Ich muss Werte erhalten, während ich mobile Apps mit dem ionischen Framework [google maps] halte/aufnehme.

Jede Hilfe würde geschätzt werden. Vielen Dank im Voraus.

.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); 
     }); 

    } 

Antwort

2

Ich denke, Ihr Problem ist, dass Ihre

$ionicGesture.on('hold')

Iconic verwendet Cordova und Cordova Karten Google hat einen eigenen Event-Handler als "Karte" ist im Zusammenhang mit nativen Ansicht nicht mit Hilfe von JavaScript. Sie können genauer lesen here.

Also, wenn Ihr Gerät ist bereit

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); 


    }); 
Verwandte Themen