首页 / 浏览问题 / 云GIS / 问题详情
绘点和线使用同样的坐标显示位置却不同
3EXP 2019年05月21日

我是用百度地图为底图的

var map = L.map('allmap', {
    crs:L.CRS.Baidu,//以百度地图为底图
    center: [34,109],//以西安坐标为中心
    zoom: 12//缩放级别
});
L.supermap.baiduTileLayer("", {
    noWrap: true
}).addTo(map);

然后 打点

var points = [];
points.push(L.latLng(p.lat, p.lng));//p.lat和p.lng是我获取到的坐标点类似[34,109]
marker =  L.marker(L.latLng(p.lat, p.lng), {icon: offIcon}).addTo(map);

画线

var polyline = L.polyline(points, {color: 'red'}).addTo(map);
map.fitBounds(polyline.getBounds());

但是最终显示

请问这个问题怎么解决

1个回答

您好,这个是百度地图的机制问题。同一个数值不同次加载会有不同的偏移量
5,668EXP 2019年05月21日
那这个怎么办呀  一次加载会好吗?

但是点和线肯定是分开搞的。。

貌似也不能一次。。

亲。我发现不是百度的问题啊。

我把地图换成超图云的效果还是一样

我的天。你们这为啥每次提个问题就说个哦是因为啥。然后就再也不理了sad

我这边测试了一下是没问题的,建议确认一下代码的实现方式。可以用默认的marker样式试一下看看有没有偏移。

确实是marker样式的问题

var offIcon = L.icon({
    iconUrl: '../static/images/gray_16x16.gif',
    iconSize: [20, 20]
    // ,
    // iconAnchor: [22, 94],
    // popupAnchor: [-3, -76]
});

iconAnchor: [22, 94],

popupAnchor: [-3, -76]

把这两个去掉之后就好了。

感谢

...