// Instantiates a new Polyline object and adds points to define a rectangle PolylineOptions rectOptions = new PolylineOptions() .add(new LatLng(37.35, -122.0)) .add(new LatLng(37.45, -122.0)) // North of the previous point, but at the same longitude .add(new LatLng(37.45, -122.2)) // Same latitude, and 30km to the west .add(new LatLng(37.35, -122.2)) // Same longitude, and 16km to the south .add(new LatLng(37.35, -122.0)); // Closes the polyline. // Get back the mutable Polyline Polyline polyline = myMap.addPolyline(rectOptions);Polygons一定条件下是跟Polyline相等的,你可以根据上面添加Polyline到GoogleMap的方法添加一个Polygons到GoolgMap,以下代码添加一个多边形到GoogleMap中
// Instantiates a new Polygon object and adds points to define a rectangle PolygonOptions rectOptions = new PolygonOptions() .add(new LatLng(37.35, -122.0), new LatLng(37.45, -122.0), new LatLng(37.45, -122.2), new LatLng(37.35, -122.2), new LatLng(37.35, -122.0)); // Get back the mutable Polygon Polygon polygon = myMap.addPolygon(rectOptions);
你可以调用 Polygon.setPoints()方法,并且提供一系列的经纬度以改变一个已添加的Polygons。
Polygons的自动关闭,上面的例子Polygons共有五个坐标,而且你会发现第一个坐标跟最后一个坐标是相同的,实现情况下Polygons定义了自动关闭区域,并不需要定义最后的坐标。以下两段代码是等效的:
Polygon polygon = map.addPolygon(new PolygonOptions() .add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3, 5), new LatLng(0, 0)) .strokeColor(Color.RED) .fillColor(Color.BLUE)); Polygon polygon = map.addPolygon(new PolygonOptions() .add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3, 5)) .strokeColor(Color.RED) .fillColor(Color.BLUE));自定义Polyline Polygons外观,你要在Polyline Polygons添加到GoolgeMap之前设置好它们的外观属性:
Polyline line = map.addPolyline(new PolylineOptions() .add(new LatLng(-37.81319, 144.96298), new LatLng(-31.95285, 115.85734)) .width(25) .color(Color.BLUE) .geodesic(true));创建一个空心的Polygons,两个路径必须定义在相同的区域内,大的区域除去小区域部分为空心的Polygons,通过addHole()方法添加空心部分的区域。
List<LatLng> latLngs = new ArrayList<LatLng>(); latLngs.add(new LatLng(37.45, -120.0)); latLngs.add(new LatLng(37.65, -122.5)); latLngs.add(new LatLng(37.0, -123.0)); latLngs.add(new LatLng(37.05, -122)); latLngs.add(new LatLng(37.45, -120.0)); mMap.addPolygon(new PolygonOptions() .add(new LatLng(37.35, -122.0), new LatLng(37.45, -122.0), new LatLng(37.45, -122.2), new LatLng(37.35, -122.2), new LatLng(37.35, -122.0)) .addHole(latLngs) .fillColor(Color.BLUE));