作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个奇怪的现象但首先是代码
<div ng-app='maptesting'>
<div ng-controller="MapCtrl">
<div id="map_canvas" ui-map="myMap"
style="height:300px;width:400px;border:2px solid #777777;margin:3px;
border:1px solid"
ui-options="mapOptions"
ui-event="{'map-idle' : 'onMapIdle()'}"
>
</div>
angular.module('maptesting', ['ui.map','ui.event']);
function MapCtrl($scope) {
var ll = new google.maps.LatLng(30.9000, 40.2740);
$scope.mapOptions = {
center: ll,
zoom: 15,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var geocoder= new google.maps.Geocoder();
var map = new window.google.maps.Map(document.getElementById("map_canvas"),
$scope.mapOptions);
var address='los angeles';
geocoder.geocode({'address':address},function(results,status){
if (status == google.maps.GeocoderStatus.OK){
alert(address);
alert(results[0].geometry.location);
alert($scope.myMap);
map.setCenter(results[0].geometry.location);
test=results[0].geometry.location;
var marker=new google.maps.Marker({
map: map,
position: results[0].geometry.location
}else{
alert(status);
}
});
$scope.onMapIdle = function() {
if ($scope.myMarkers === undefined){
var marker = new google.maps.Marker({
map: $scope.myMap,
position: ll
});
$scope.myMarkers = [marker, ];
}
};
$scope.markerClicked = function(m) {
window.alert("clicked");
};
}
一切似乎都正常,标记、缩放、拖动,唯一不顺利的是 map.setCenter, map 总是将他的中心设置在 ll 坐标中,任何人都可以帮助我吗?
在这里你可以找到一个 fiddle http://jsfiddle.net/eb8Fd/1/如您所见,中心不在加利福尼亚,而是在伊拉克,如果快速缩放,似乎有两张 map 。
最佳答案
那里有 2 个 google.maps.Map
实例(1 个是通过 ui.map
创建的,另一个是在 MapCtrl
中创建的)。
删除第二个实例的创建并使用此代码:
//Markers should be added after map is loaded
var address='los angeles';
geocoder.geocode({'address':address},function(results,status){
if (status == google.maps.GeocoderStatus.OK){
alert(address);
alert(results[0].geometry.location);
alert($scope.myMap);
$scope.myMap.setCenter(results[0].geometry.location);
test=results[0].geometry.location;
var marker=new google.maps.Marker({
map: $scope.myMap,
position: results[0].geometry.location
});
}else{
alert(status);
}
});
关于javascript - 谷歌地图地理编码和setCenter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22064307/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!