我想要一个像上面虚线圆路径路径的地图用户界面。我通过网络和堆栈溢出搜索了很多我无法找到任何来源。
我试过
addCircle折线但是当我将相机缩放到时,圆圈很大 谷歌地图的延伸
我不知道谷歌地图如何使用标记或 折线
提供帮助是赞赏而不是downvotes !!
谢谢: - )
答案 0 :(得分:1)
您可以将Stroke Patterns用于折线,如下所示:
@Override
public void onMapReady(GoogleMap googleMap) {
List<LatLng> sourcePoints = new ArrayList<>();
sourcePoints.add(new LatLng(22.724526, 75.825979));
sourcePoints.add(new LatLng(22.720165, 75.905953));
sourcePoints.add(new LatLng(22.766649, 76.075773));
sourcePoints.add(new LatLng(22.862032, 76.098302));
PolylineOptions polyLineOptions = new PolylineOptions();
polyLineOptions.addAll(sourcePoints);
polyLineOptions.width(50f);
polyLineOptions.color(Color.rgb(0, 178, 255));
Polyline polyline = googleMap.addPolyline(polyLineOptions);
List<PatternItem> pattern = Arrays.<PatternItem>asList(new Dot(), new Gap(10f));
polyline.setPattern(pattern);
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(sourcePoints.get(2))
.zoom(14)
.build();
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
}
得到这样的结果:
不幸的是,由于Dot()
和Gap()
尺寸之间存在非线性依赖关系,因此无法在较小的圆圈下绘制较大的圆圈来实现“镶边”圆圈路径。
或者你可以在MapVew
画布上通过覆盖dispatchDraw()
的{{1}}来绘制你想要的任何内容,就像在this回答一样(这是关于MapView
{{3} },但方法也适用于Google地图MapBox
。
答案 1 :(得分:0)
我认为它有点矫枉过正,但你可以使用https://console.developers.google.com/apis/library
中的一些Google API并从他们的LatLngs集中获取路径并制作,然后像普通标记一样在googleMap上绘制它们,但使用小圆圈作为图标。
说实话,我不确定你想要达到什么目标,我认为更简单的想法是使用原点和目的地并在GoogleMaps Android App中打开它 - 不要重新发明轮子。