android - 不同的 LaLng 进口

标签 android google-maps google-api importerror directions

我在使用 LatLng 时遇到一些类型冲突。 虽然这个问题不会阻止应用程序正常运行,但我想优化导入。

我像这样导入 LatLng:

import com.google.android.gms.maps.model.LatLng;

我可以成功使用导入的 LatLng,如下所示:

private LatLng[] places = {new LatLng(xx.xxxx, xx.xxxx)
};

但是,在使用 Directions API 并使用生成的路线之后:

List<com.google.maps.model.LatLng> decodedPath = PolylineEncoding.decode(route.overviewPolyline.getEncodedPath());

解码函数属于PolylineEncoding.java,当我检查源代码并搜索LatLng导入时,我遇到了导入:

import com.google.maps.model.LatLng;

这与我原来导入的不同

import com.google.android.gms.maps.model.LatLng;

我的目标是像这样使用 LatLng:

List<LatLng> decodedPath = PolylineEncoding.decode(route.overviewPolyline.getEncodedPath());

当我这样做时,我得到了错误(自然): Type conflict

如何解决此冲突?

提前谢谢您。

最佳答案

我不确定这是否是您需要的,您可以编写一个静态方法来转换类型:

static List<com.google.maps.model.LatLng> convertCoordType(List<com.google.android.gms.maps.model.LatLng> list) {
  List<com.google.maps.model.LatLng> resultList = new ArrayList<>();
  for (com.google.android.gms.maps.model.LatLng item : list) {
    resultList.add(new com.google.maps.model.LatLng(item.latitude, item.longitude));
  }
  return resultList;
}

然后调用convertCoordType来环绕解码:

List<LatLng> decodedPath = convertCoordType(PolylineEncoding.decode(route.overviewPolyline.getEncodedPath()));

关于android - 不同的 LaLng 进口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60245464/

相关文章:

android - 未找到样式属性 attr/colorSecondary

php - google map 多标记工具提示仅显示在 firefox 中的第一个标记上

java - Google Docs Java API 中 ListEntry.update() 上的 com.google.gdata.util.PreconditionFailedException

google-app-engine - 在没有用户登录的情况下授权谷歌云端点 API 访问

python - 谷歌API Python客户端: "from six.moves import zip ImportError: No module named moves"

java - 即使我添加 + 1,带有 DatePicker 的日历也总是返回上个月

android - 为什么调试证书不能安全地签署 Android APK?

java - 从 android 中的 Activity X 启动 Activity X

java - 将 imageview 放置在 mapfragment/mapview 之上

java - 单击信息窗口 Google Maps V2 的监听器