angularjs - 如何将 GooglePlacesServices 与 angular-google-maps 一起使用

标签 angularjs google-maps-api-3 angular-google-maps

我实例化了一个 map 和搜索框,并在搜索完成后删除了一个标记。这是正常工作的,但是,我想查询地点服务以获取放置标记的附近的地点,并且在运行时收到错误: google.maps.places.PlacesService(map) Uncaught TypeError: undefined is not a功能...

下面是一些相关代码 在我的 Angular.module.config 中:

uiGmapGoogleMapApiProvider.configure({
  v: '3.17',
  libraries: 'places'
});

在我的 map Controller 中:

1)加载时回调

uiGmapGoogleMapApi.then(function(maps) {
  $scope.googleMapsObject = maps;
});

2) 设置事件处理程序来创建标记

$scope.searchbox = {
  events: {
      places_changed: placesChangedHandler
  }
}

3) 处理地点更改时的情况,设置纬度标记,以及(最后一行是问题)查询地点名称。

function placesChangedHandler(searchBox) {
  var lat = searchBox.getPlaces()[0].geometry.location.k;
  var lgn = searchBox.getPlaces()[0].geometry.location.C;
  var center = { latitude: lat , longitude: lgn };
  $scope.address = searchBox.getPlaces()[0].adr_address;
  $scope.map = {
    center: center, zoom: 15
  };
  setMarker(center);
  var service = new google.maps.places.PlacesService($scope.googleMapsObject); 
 // service.nearbySearch(request, callback);
}

错误出现在倒数第二行。 (另外,是否有更干净的方法来获取这些变量?)

预先感谢您的帮助!

最佳答案

我最近遇到了同样的问题,花了一些时间才明白出了什么问题,因为我是 Angular 新手(说实话,我是 Java Script 新手;))

在您的 Controller 中,您需要添加 $window 依赖项来访问全局对象 google。它的外观如下:

.controller('mapCtrl', ['$scope', '$window', 'uiGmapGoogleMapApi'
    , function($scope, $window, GoogleMapApi) {
  GoogleMapApi.then(function(map) {
    $scope.googleVersion = map.version;
    $scope.map = { center: { latitude: 59.9500, longitude: 10.7500 }, zoom: 11 };
    $scope.googleMapsObject = map

    var service = new $window.google.maps.places.PlacesService($scope.googleMapsObject);
  });
}])

关于angularjs - 如何将 GooglePlacesServices 与 angular-google-maps 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27832996/

相关文章:

javascript - 下拉菜单打不开

javascript - 谷歌地图spiderfy功能——同一点有多个标记

ios - GMSMarker iOS 问题

javascript - 如何在 JavaScript 中更新数组中的特定值

javascript - Controller 和 HTML 之间的 AngularJs ng-model 延迟

android - 滚动到谷歌地图时,Ionic Android 应用程序崩溃

javascript - 使用 angular-google-maps 指令在 "grunt serve"期间有效,但在默认 grunt 任务期间无效

angularjs - 使用 angular-google-maps 设置 Google map 范围

javascript - 在 <li> 标记中使用时,ng-repeat 不起作用

javascript - Google Place Autocomplete Address API 强制 HTML Autocomplete = Off