You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mapbox获取新坐标后无法添加标记问题求助(附代码)

解决Mapbox点击地图添加标记失败的问题

哈哈,这个问题我一眼就瞅到症结啦!你遇到的是Mapbox新手常踩的小坑——setLngLat()方法的参数顺序搞反了!

Mapbox的坐标规则一直是「经度在前,纬度在后」,不管是初始化地图的center参数,还是设置标记位置,都得遵循这个顺序。你代码里把latitude(纬度)放在了setLngLat()的第一个参数位置,这就导致标记被放到了错误的坐标点(甚至可能超出地图可视范围,看起来就像没添加成功)。

修正后的完整代码

var map = new mapboxgl.Map({ 
    container: 'map', 
    style: 'mapbox://styles/mapbox/streets-v11', 
    center: [data.Longitude, data.Latitude], // 这里也要注意!原代码顺序也反了,一并修正
    zoom: 12 
}); 

map.on('click', function (e) { 
    var latitude = e.lngLat.lat; 
    var longitude = e.lngLat.lng; 
    console.log(latitude + " - " + longitude) 
    var marker = new mapboxgl.Marker() 
        .setLngLat([longitude, latitude]) // 核心修正:把经度放在前面
        .addTo(map); 
});

额外提醒

初始化地图的center参数你原来写的是[data.Latitude, data.Longitude],如果你的data对象里Latitude是纬度值、Longitude是经度值,那这里的顺序也反了,我已经一起修正了,不然地图的初始中心位置也会出错哦~

内容的提问来源于stack exchange,提问作者Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 18:52:57