2016-08-09 6 views
3

私はGoogle Mapsからionicでイベントをタップまたはホールドしながら座標を取得しようとしています。ionic googleマップで長時間タップ/ホールドしながら座標値を取得する方法

保持している間、ブラウザコンソールに値が表示されていません。

この問題を解決するにはどうすればよいですか。イオンフレームワーク[google maps]を使用してモバイルアプリを保持/テーピングしながら値を取得する必要があります。

ご迷惑をおかけして申し訳ございません。お詫び申し上げます。 「マップ」は、関連するJavaScriptのないネイティブのビューにあるよう

.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')

を使用してアイコニックは、コルドバとコルドバGoogleマップを使用していることだと思いますが、独自のイベントハンドラを持っています。 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); 


    }); 

準備ができていたら、
関連する問題