LatLng latLng; double latitude = poiList.get(i).getCoordinate().latitude; double longitude = poiList.get(i).getCoordinate().longitude; 把这两个经纬度给到latlng
时间: 2024-03-17 18:43:20 浏览: 21
可以使用以下代码将经纬度赋值给latLng对象:
```
LatLng latLng = new LatLng(latitude, longitude);
```
其中,latitude为poiList中第i个元素的纬度值,longitude为第i个元素的经度值。LatLng是Google Maps API中表示地理位置的一个类。
相关问题
String nearby = district.getString("nearby"); if(StringUtil.isEmpty(nearby)){ pi = new PoiSearchInfo(Constant.MAP_SEARCH_NEARBY, 5000, false, null, object.getString("keyword"),latLng); }else{ Map<String, String> map_currentaddress = AddressAutoCompleteUtil.getFullAddressByHalfAddr(nearby, ast.getContext()); String latitude = map_currentaddress.get(AddressAutoCompleteUtil.LAT); String longitude = map_currentaddress.get(AddressAutoCompleteUtil.LNG); latLng = new LatLng(Double.parseDouble(Objects.requireNonNull(latitude)), Double.parseDouble(Objects.requireNonNull(longitude))); pi = new PoiSearchInfo(Constant.MAP_SEARCH_NEARBY, 5000, false, null, object.getString("keyword"),latLng); } 这个代码和下面的代码有什么不同? String nearby = district.getString("nearby"); if (!StringUtil.isEmpty(nearby)) { Map<String, String> map_currentaddress = AddressAutoCompleteUtil.getFullAddressByHalfAddr(nearby, ast.getContext()); String latitude = map_currentaddress.get(AddressAutoCompleteUtil.LAT); String longitude = map_currentaddress.get(AddressAutoCompleteUtil.LNG); latLng = new LatLng(Double.parseDouble(Objects.requireNonNull(latitude)), Double.parseDouble(Objects.requireNonNull(longitude))); } pi = new PoiSearchInfo(Constant.MAP_SEARCH_NEARBY, 5000, false, null, object.getString("keyword"),latLng);
这两段代码的主要区别在于条件判断的方式和pi对象的赋值位置。
第一段代码中,使用了StringUtil.isEmpty()方法判断nearby是否为空,如果为空则执行if语句块内的逻辑,否则执行else语句块内的逻辑。在if语句块内,根据keyword和latLng创建了一个PoiSearchInfo对象,并将其赋值给pi。
而第二段代码中,使用了!StringUtil.isEmpty()方法判断nearby是否不为空,如果不为空则执行if语句块内的逻辑。在if语句块内,根据nearby获取了地理位置信息,并根据该信息获取经纬度,然后将经纬度赋值给latLng。接着,在if语句块外,根据keyword和latLng创建了一个PoiSearchInfo对象,并将其赋值给pi。
因此,第一段代码中的pi对象的赋值是在条件判断的内部进行的,而第二段代码中的pi对象的赋值是在条件判断的外部进行的。这导致了两段代码的执行顺序和pi对象的赋值时机有所不同。
if (!marker.isRemoved()) { //删除途经点 int deletePosition = -1; for (int i = 0; i < poiList.size(); i++) { if (poiList.get(i).getLatLng().equals(marker.getPosition())) { deletePosition = i; break; } } if (deletePosition != -1) { poiList.remove(deletePosition); int strategy = mAMapNavi.strategyConvert(congestion, avoidhightspeed, cost, hightspeed, true); mAMapNavi.calculateDriveRoute(start, end, poiList, strategy); } else { Log.e("TAG", "未找到对应的途经点"); } Log.e("TAG", "点击途经点:" + marker.getPosition()); } return true; } 这个删除不了poilist中的途经点,没有getLatLng() 方法,也没法添加,换个方式去实现
如果您无法使用 `getLatLng()` 方法,可以通过其他方式来删除 `poilist` 中的途经点。一种可能的方式是,将途经点的位置信息存储在 `poilist` 中,然后与地图上的标记进行比较,以确定要删除的途经点。
具体来说,您可以在往 `poilist` 中添加途经点时,将途经点的位置信息(经纬度)作为一个对象存储在 `poilist` 中,例如:
```
class PoiItem {
private double latitude;
private double longitude;
public PoiItem(double latitude, double longitude) {
this.latitude = latitude;
this.longitude = longitude;
}
public double getLatitude() {
return latitude;
}
public double getLongitude() {
return longitude;
}
}
```
然后在删除途经点时,遍历 `poilist`,与地图上的标记进行比较,以确定要删除的途经点。例如:
```
int deletePosition = -1;
for (int i = 0; i < poiList.size(); i++) {
PoiItem poiItem = poiList.get(i);
LatLng poiLatLng = new LatLng(poiItem.getLatitude(), poiItem.getLongitude());
if (poiLatLng.equals(marker.getPosition())) {
deletePosition = i;
break;
}
}
if (deletePosition != -1) {
poiList.remove(deletePosition);
int strategy = mAMapNavi.strategyConvert(congestion, avoidhightspeed, cost, hightspeed, true);
mAMapNavi.calculateDriveRoute(start, end, poiList, strategy);
} else {
Log.e("TAG", "未找到对应的途经点");
}
```
这样,您就可以通过比较经纬度来删除途经点了。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)