如何将周边地点的经纬度存储至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
相关产品推荐
相关产品推荐

