Unity3D中MapBox地图:Unity坐标转经纬度的API/函数咨询
Unity位置转经纬度(Abstract Map反向转换)
嘿,刚好你之前用了GeoToWorldPosition做正向转换,Abstract Map本身就提供了对应的反向API来完成Unity世界坐标到经纬度的转换!
- 核心方法就是
WorldToGeoPosition,它和你之前用的GeoToWorldPosition是成对出现的,专门用来处理反向转换。
示例代码
你可以直接在Unity脚本里这样调用:
// 获取你要转换的Unity世界空间位置(比如某个生成对象的transform.position) Vector3 targetWorldPos = yourSpawnedObject.transform.position; // 调用Abstract Map的反向转换方法 GeoCoordinate geoCoords = AbstractMap.Instance.WorldToGeoPosition(targetWorldPos); // 提取经纬度值 double targetLatitude = geoCoords.Latitude; double targetLongitude = geoCoords.Longitude;
注意事项
- 如果你的地图是3D模式,转换时建议忽略Y轴高度(除非你的SDK支持带高度的地理坐标转换),可以传入
new Vector3(targetWorldPos.x, 0, targetWorldPos.z)来确保转换准确性。 - 要确保目标位置在当前加载的地图范围内,否则返回的经纬度可能会出现异常值。
- 不同版本的Abstract Map可能会有方法名细微差异,如果找不到
WorldToGeoPosition,可以去SDK的API文档里找“世界坐标转地理坐标”相关的方法,通常命名逻辑都是和正向转换对应起来的。
内容的提问来源于stack exchange,提问作者Adityo Setyonugroho
相关产品推荐
相关产品推荐

