На прошлой неделе я реализовал API Google Maps Maps для простого проекта. До сих пор я без проблем пользовался услугами Autocomplete и PlacesService. При добавлении интерактивной карты у меня возникали проблемы с тем, что карта не загружалась все время из-за асинхронного характера. С тех пор я перешел на использование плагина с угловыми Google-картами. Я не использую загрузчик SDK, поскольку я чувствую, что избыточно загружать библиотеку дважды, так как я уже загрузил ее для Autocomplete и PlacesService. Я пошел по самому основному примеру, но карта просто не появится. Общие ошибки, которые я проверил:Угловые-google-карты, не показывающие
- Дал html, тело и карту div высотой.
- Убедитесь, что библиотека загружалась до использования углового модуля и ключа с двойным проверкой.
- То же самое происходит при использовании загрузчика SDK, поэтому я уверен, что это не вызывает его. Autocomplete и PlacesService работают так, что библиотека работает в этом случае.
HTML:
<div class="col-xs-12 col-md-6">
<div class="row">
<div class="col-xs-12">
<div id="map" class="well">
<ui-gmap-google-map center="map.center"
zoom="map.zoom"
pan="true"
>
</ui-gmap-google-map>
</div>
</div>
</div>
</div>
Контроллер:
angular.module("app").controller("IndexCtrl", ["$scope", "$interval", "uiGmapGoogleMapApi", function($scope, $interval, uiGmapGoogleMapApi) {
var Autocomplete;
var PlacesService;
$(document).ready(function() {
Autocomplete = new google.maps.places.Autocomplete(document.getElementById("placeInput"), {});
PlacesService = new google.maps.places.PlacesService(document.getElementById("map"));
});
uiGmapGoogleMapApi.then(function(maps) {
$scope.map = { center: { latitude: 0, longitude: 0 }, zoom: 2 };
$scope.googleVersion = maps.version;
maps.visualRefresh = true;
});
}]);
CSS:
.angular-google-map-container {
height: 400px;
}
.angular-google-map {
height: 400px;
}