谷歌地图插件与离子

时间:2015-09-01 11:51:03

标签: android cordova google-maps ionic-framework

我必须在我的离子应用程序中集成一个谷歌地图圈(对于android)。我从this链接安装了该插件。我按照所有步骤,但我有一个问题。当我调用map.addCircle()函数时,logcat返回一个错误“未捕获类型错误:未定义不是函数”。

如何解决此问题?

这是我的controller.js:

angular.module('starter', ['ionic'])

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if(window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
    }
    if(window.StatusBar) {
      StatusBar.styleDefault();
    }


    // Wait until the map is ready status.

  });
})

.controller('MapCtrl', function($scope, $ionicLoading, $compile) {

    var geocoder;
    geocoder = new google.maps.Geocoder();
  function initialise() {

      navigator.geolocation.getCurrentPosition(onSuccess, onError); 
    function onSuccess(position){
      var myLatlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
      $scope.latlng = myLatlng;
      console.log($scope.latlng);


      var mapOptions = {
        zoom: 15, 
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP, 
      }


      var map = new google.maps.Map(document.getElementById('map'), mapOptions);
      var marker = new google.maps.Marker({
        position: myLatlng,
        map: map,
      });
      map.addCircle({
          'center': myLatlng,
          'radius': 300,
          'strokeColor' : '#AA00FF',
          'strokeWidth': 5,
          'fillColor' : '#880000'
        });
      $scope.map = map; 


    }
    function onError(error){
      alert('code: '    + error.code    + '\n' +
              'message: ' + error.message + '\n');
    }   
  }
  google.maps.event.addDomListener(window, 'load', initialise);

 })

1 个答案:

答案 0 :(得分:0)

使用this链接中的Angular-Google-Maps解决。

安装ng-map.js后,您可以使用以下代码从html页面创建圆圈:

<shape name="circle" stroke-color="#FF0000" stroke-opacity="0.8" stroke-weight="2" fill-color="#FF0000" fill-opacity="0.35" center="<someCoordinates>" radius="10">
    </shape>