问题1:地图只显示左上角一小块
解决:var map = new BMap.Map("map"); 只需要初始化一次。
问题2:初始化地图,标注点不在中心,而在左上角
解决:先show() Map的div,再初始化地址。
问题3:标注点在中心,但第一次拖拽时,标注点跳到左上角,之后拖拽正常。
解决:地图加载完后,‘tilesloaded’ 事件中重新设置标注点。
egCode:
//完成问题1 $('#map').show(); dealer_map.map_tag(data); self.map_tag = function (data) { map.clearOverlays(); for (var i = 0; i < data.length; i++) { if (i == 0) { point = new BMap.Point(data[i].longitude, data[i].latitude); //循环生成新的地图点 var marker = new BMap.Marker(point); //按照地图点坐标生成标记 map.addOverlay(marker); map.centerAndZoom(point, 15); // 初始化地图,设置中心点坐标和地图级别。 map.enableScrollWheelZoom(true); layer.closeAll(); //完成问题3 var loadCount = 1; map.addEventListener("tilesloaded", function () { if (loadCount == 1) { map.setCenter(point, 15); } loadCount = loadCount + 1; }); return; } } }; //完成问题2 self.map_init = function (lat, lon) { //if (isInit) return; map = new BMap.Map("map"); // 创建Map实例 //isInit = true; }; window.addEventListener('load', function () { self.map_init(37, 105); });