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

如何将周边地点的经纬度存储至ArrayList?

解决周边地点经纬度存入ArrayList的问题

嘿,我看你已经搞定了地图上的位置获取和标记点展示,现在就差把所有周边地点的经纬度存到ArrayList<LatLng>数组里对吧?结合你给出的代码片段,我来帮你补全这部分逻辑:

首先,你的代码已经初始化了arrayList,接下来只需要在循环里从每个googlePlace中提取纬度和经度,转换成LatLng对象后添加到数组里就行。这里要注意,从HashMap里取到的经纬度是字符串类型,需要转成double才能传给LatLng的构造函数。

补全后的完整代码如下:

private void showNearbyPlaces(List<HashMap<String, String>> nearbyPlaceList) {
    int size = nearbyPlaceList.size();
    arrayList = new ArrayList<LatLng>();
    for (int i = 0; i < size; i++) {
        MarkerOptions markerOptions = new MarkerOptions();
        HashMap<String, String> googlePlace = nearbyPlaceList.get(i);
        String placeName = googlePlace.get("place_name");
        
        // 提取经纬度并转换为double类型
        double lat = Double.parseDouble(googlePlace.get("lat"));
        double lng = Double.parseDouble(googlePlace.get("lng"));
        
        // 创建LatLng对象并添加到arrayList中
        LatLng latLng = new LatLng(lat, lng);
        arrayList.add(latLng);
        
        // 如果你之前的标记点展示逻辑需要,这里可以继续设置markerOptions的位置等属性
        markerOptions.position(latLng);
        markerOptions.title(placeName);
        // ... 其他标记点相关设置(比如图标、颜色等)
    }
}

几个需要注意的小细节:

  • 确保googlePlace中确实存在"lat"和"lng"这两个键,避免NullPointerException。如果数据来源不确定,可以加个非空检查,比如:
    String latStr = googlePlace.get("lat");
    String lngStr = googlePlace.get("lng");
    if (latStr != null && lngStr != null) {
        double lat = Double.parseDouble(latStr);
        double lng = Double.parseDouble(lngStr);
        LatLng latLng = new LatLng(lat, lng);
        arrayList.add(latLng);
    }
    
  • 如果你后续需要用这个arrayList做批量操作(比如计算地点间距离、批量定位等),现在就可以直接调用这个数组使用啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:37:20