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

Android Kotlin调用Mapbox flyTo时相机定位至错误位置问题

问题根因

Point.fromLngLat() 方法的参数顺序传反了。该方法固定要求第一个入参为经度(longitude),第二个入参为纬度(latitude),你的代码中把location.latitude放在第一个参数位、location.longitude放在第二个参数位,经纬度错位直接导致定位位置完全偏离预期。
葡萄牙的坐标范围大致为西经6°9°、北纬36°42°,传反参数后,相当于把经度设置为北纬30+的数值、纬度设置为西经个位数的数值,对应落点刚好在马达加斯加周边区域,和你描述的异常现象完全匹配。

修正后实现代码
map.flyTo(
    cameraOptions {
        // 严格按照经度在前、纬度在后的顺序传参
        center(Point.fromLngLat(location.longitude, location.latitude))
    },
    MapAnimationOptions.mapAnimationOptions {
        duration(7000)
    }
)
核心使用要点
  • Mapbox所有经纬度传参接口统一遵循「经度在前、纬度在后」的规则,不要和日常表述习惯里的“经纬度”(先提纬度、后提经度)顺序混淆
  • 除参数顺序外,坐标位置偏移问题还需要额外校验坐标系匹配:Mapbox默认使用WGS84坐标系,直接传入GCJ02(国测局坐标)、BD09(百度坐标)的坐标值也会出现百米到公里级的位置偏移,需要提前做坐标系转换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 15:15:35