百度地图添加了一些标注点,但是拖动或缩放地图,标注点就消失了?
var data = {
query: '商圈',
page_size: 20,
radius: '2000',
output: 'json',
ak: 'av0gRXBETn44ByDpMgYhj95P9nACGns9'
};
var map = new BMap.Map("container");
map.enableScrollWheelZoom(true);
var top_right_navigation = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_RIGHT, type: BMAP_NAVIGATION_CONTROL_SMALL})
map.addControl(top_right_navigation);
// 定位对象
var geoc = new BMap.Geocoder();
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r){
if(this.getStatus() == BMAP_STATUS_SUCCESS){
data.location = r.point.lat.toFixed(3)+','+r.point.lng.toFixed(3);
var point = new BMap.Point(r.point.lng.toFixed(3), r.point.lat.toFixed(3));
map.centerAndZoom(point, 15);
$.ajax({
url: "http://api.map.baidu.com/place/v2/search",
data: data,
type: "GET",
dataType: "jsonp",
success: function (data) {
var result = data.results;
addMarker(result)
}
});
// 编写自定义函数,创建标注
function addMarker(result){
var itmes;
var data = result;
var point = {};
for(var i=0;i<data.length;i++) {
itmes = result[i];
point['lng'] = itmes.location.lng;
point['lat'] = itmes.location.lat;
var marker = new BMap.Marker(point);
map.addOverlay(marker);
}
}
}else {
alert('无法定位到您的当前位置,导航失败,请手动输入您的当前位置!'+this.getStatus());
}
},{enableHighAccuracy: true});
缩放后:
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
大概是因为这些标注点的坐标是通过ajax获取过来的,不知道百度地图内部是怎么实现的。我这个项目中,百度地图是在另一个页面中,需要通过点击某个按钮将这个页面放入iframe中,所以我先在页面刷新的时候将数据先准备好存在本地。百度地图的页面在去获取就没问题了。