我创建了一个Map Fragment,它将arraylist(解析的XML)中的标记添加到Google地图中。在标记之间我绘制折线。一切正常,但线条是直线绘制的,尽管我已经激活了测地线。
我是否有特定的方法或代码来实现测地工作。我想有一条线,从街道到另一条街道。或者Geodesic只能使用2个标记?我有两个以上。
private void setUpMap() {
PolylineOptions routeDraw = new PolylineOptions().width(5).color(Color.BLUE).geodesic(true);
try {
for (RowItem aPoisMap : poisMap) {
latitude = aPoisMap.getLatitudePoi();
longitude = aPoisMap.getLongitudePoi();
poiTitle = aPoisMap.getTitle();
poiDesc = aPoisMap.getDesc();
marker = mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title(poiTitle).snippet(poiDesc));
routeDraw.add(new LatLng(latitude, longitude));
}
Polyline polyline = mMap.addPolyline(routeDraw.geodesic(true));
latitudeZoom = poisMap.get(0).getLatitudePoi();
longitudeZoom = poisMap.get(0).getLongitudePoi();
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitudeZoom, longitudeZoom), 14));
mMap.setMyLocationEnabled(true);
} catch (NullPointerException e) {
Context context = getActivity().getApplicationContext();
CharSequence text = getResources().getString(R.string.errormap);
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, text, duration);
toast.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 0);
toast.show();
}
}
答案 0 :(得分:4)
你误解了geodesic line是什么。现在要使用道路显示两个特定点之间的路线,您需要使用Directions API来获取点,然后可以将这些点构建到折线中。
This answer提供了一种很好的方法来解析Directions API输出的结果。它只是解析XML然后连接PolylineOptions
对象中的点。
注意:Directions API的默认每日限额为2,500次查询。