无法解析符号“添加”列表<com.google.android.gms.maps.model.latlng>

时间:2019-02-16 14:42:03

标签: android google-maps-android-api-2

我正在尝试使用PolyUtil。 isLocationOnPath ,它要求java.util.Listcom.google.android.gms.maps.model.LatLng而不是java.util.List com.google.type.LatLng。结果,当我尝试创建这样的列表时:

 List<com.google.android.gms.maps.model.LatLng> path3 = new ArrayList<>();
 path3.add(new com.google.android.gms.maps.model.LatLng(-35.016, 143.321),
           new com.google.android.gms.maps.model.LatLng(-34.747, 145.592),
           new com.google.android.gms.maps.model.LatLng(-34.364, 147.891),
           new com.google.android.gms.maps.model.LatLng(-33.501, 150.217),
           new com.google.android.gms.maps.model.LatLng(-32.306, 149.248),
           new com.google.android.gms.maps.model.LatLng(-32.491, 147.309))

 public boolean checkLocationOnRoute(){
   return  onRoute = PolyUtil.isLocationOnPath(currentPoint, path, false, 100);
 }

这将导致cannot resolve symbol 'add'错误。如何使用必需的List<com.google.android.gms.maps.model.LatLng> isLocationOnPath 方法为折线创建列表。

2 个答案:

答案 0 :(得分:0)

首先像这样创建折线

PolylineOptions options = new PolylineOptions().geodesic(true);
options.add(new com.google.android.gms.maps.model.LatLng(-35.016, 143.321));
options.add(new com.google.android.gms.maps.model.LatLng(-34.747, 145.592));
// Add all remaining points
Polyline line = mgGoogleMap.addPolyline(options);

现在,您可以像这样检查您的点是否在折线中:

PolyUtil.isLocationOnPath(currentPoint, line.getPoints(), true)
// The true here refers to geodesic true.

答案 1 :(得分:0)

考虑到.add(new com.google.android.gms.maps.model.LatLng(Lat, Lng));抛出了cannot resolve symbol 'add',我将下面的所有代码放在我的requestLocationUpdates方法内:

List<com.google.android.gms.maps.model.LatLng> options = new ArrayList<>();

                options.add(new com.google.android.gms.maps.model.LatLng(-35.016, 143.321));
                options.add(new com.google.android.gms.maps.model.LatLng(-34.747, 145.592));// Add all remaining points                    

                onRoute = PolyUtil._isLocationOnPath_(currentPoint, options, true, 490);

我还使用490m作为tolerance对其进行了测试,当true在距离内时返回currentPoint,然后在false处返回currentPoint超出options中的坐标范围。