Angular-google-地图未显示
Angular-google-maps not showing
过去一周我一直在为一个简单的项目实施 Google 的 JavaScript 地图 API。到目前为止,我一直在毫无问题地使用自动完成服务和 PlacesService。添加交互式地图时,由于地图的异步特性,我遇到了无法一直加载地图的问题。我已经转而使用 angular-google-maps 插件。我没有使用 SDK 加载器,因为我觉得加载库两次是多余的,因为我已经为自动完成和 PlacesService 加载了它。我遵循了非常基本的示例,但地图不会显示。我检查过的常见错误:
- 给 html、正文和地图 div 一个高度。
- 确保在使用 angular 模块之前加载库并仔细检查 API 键
- 使用 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;
}
太棒了。通过发布这个并仅发布罪魁祸首代码,我注意到我使用与 angular-google-maps 模块相同的 div 作为我的 PlacesService 的容器。通过更改此设置,地图渲染良好。
新控制器:
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("placesContainer"));
});
uiGmapGoogleMapApi.then(function(maps) {
$scope.map = { center: { latitude: 0, longitude: 0 }, zoom: 2 };
$scope.googleVersion = maps.version;
maps.visualRefresh = true;
});
}]);
新 HTML:
<div class="col-xs-12 col-md-6">
<div class="row">
<div class="col-xs-12">
<div id="map"></div>
<div class="well">
<ui-gmap-google-map center="map.center"
zoom="map.zoom"
pan="true"
>
</ui-gmap-google-map>
</div>
</div>
</div>
</div>
过去一周我一直在为一个简单的项目实施 Google 的 JavaScript 地图 API。到目前为止,我一直在毫无问题地使用自动完成服务和 PlacesService。添加交互式地图时,由于地图的异步特性,我遇到了无法一直加载地图的问题。我已经转而使用 angular-google-maps 插件。我没有使用 SDK 加载器,因为我觉得加载库两次是多余的,因为我已经为自动完成和 PlacesService 加载了它。我遵循了非常基本的示例,但地图不会显示。我检查过的常见错误:
- 给 html、正文和地图 div 一个高度。
- 确保在使用 angular 模块之前加载库并仔细检查 API 键
- 使用 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;
}
太棒了。通过发布这个并仅发布罪魁祸首代码,我注意到我使用与 angular-google-maps 模块相同的 div 作为我的 PlacesService 的容器。通过更改此设置,地图渲染良好。
新控制器:
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("placesContainer"));
});
uiGmapGoogleMapApi.then(function(maps) {
$scope.map = { center: { latitude: 0, longitude: 0 }, zoom: 2 };
$scope.googleVersion = maps.version;
maps.visualRefresh = true;
});
}]);
新 HTML:
<div class="col-xs-12 col-md-6">
<div class="row">
<div class="col-xs-12">
<div id="map"></div>
<div class="well">
<ui-gmap-google-map center="map.center"
zoom="map.zoom"
pan="true"
>
</ui-gmap-google-map>
</div>
</div>
</div>
</div>