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

如何在Google Maps中设置校园地图边界?更换坐标后应用崩溃求助

解决Google Maps LatLngBounds导致应用崩溃的问题

嘿,我猜你遇到的问题是因为LatLngBounds构造函数的参数顺序搞反了!

问题原因

Google Maps的LatLngBounds类要求构造函数的第一个参数是**西南角(southwest)的坐标,第二个参数是东北角(northeast)**的坐标。这需要满足两个核心条件:

  • 西南角的纬度值必须 ≤ 东北角的纬度值(北半球中,纬度数值越小越靠南)
  • 西南角的经度值必须 ≤ 东北角的经度值(东经区域中,经度数值越小越靠西)

看你的校园坐标代码:

private LatLngBounds CPUBounds = new LatLngBounds(
    new LatLng(10.732581, 122.548413),  // 纬度10.732581(更靠北)
    new LatLng(10.730052, 122.549958)   // 纬度10.730052(更靠南)
);

这里你把更靠北的点放在了本该是西南角的第一个参数位置,导致LatLngBounds初始化逻辑出错,最终引发应用崩溃。

两种解决方法

方法1:手动调整坐标顺序

直接调换两个坐标的位置,确保第一个是西南角(纬度、经度都更小的点),第二个是东北角(纬度、经度都更大的点):

private LatLngBounds CPUBounds = new LatLngBounds(
    new LatLng(10.730052, 122.548413),  // 西南角:纬度、经度都更小
    new LatLng(10.732581, 122.549958)   // 东北角:纬度、经度都更大
);

方法2:使用Builder模式(更推荐新手)

如果你不确定坐标的方位,用LatLngBounds.Builder可以自动帮你计算正确的边界,完全不用纠结顺序:

// 先创建Builder实例
LatLngBounds.Builder boundsBuilder = new LatLngBounds.Builder();
// 添加所有需要包含的坐标点
boundsBuilder.include(new LatLng(10.732581, 122.548413));
boundsBuilder.include(new LatLng(10.730052, 122.549958));
// 构建最终的LatLngBounds对象
private LatLngBounds CPUBounds = boundsBuilder.build();

这种方式不仅不会出错,还能方便地添加多个坐标点来扩展边界范围。

内容的提问来源于stack exchange,提问作者Mr. Dontknowhowtocode

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:37:41