绘制多边形并更改颜色

时间:2014-04-09 19:57:25

标签: android

我在下面看到编写代码来绘制多边形,但是没有在地图上绘图和显示为什么? 你能检查一下吗? 请帮助
谢谢....

public class Map extends  Activity implements OnMapClickListener{

final int RQS_GooglePlayServices = 1;
private GoogleMap myMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    //TODO Auto-generated method stub
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_map);

 FragmentManager myFragmentManager = getFragmentManager();
 MapFragment myMapFragment = (MapFragment)myFragmentManager.findFragmentById(R.id.map);
 myMap = myMapFragment.getMap();
 myMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
 myMap.setOnMapClickListener(this);
 myMap.setMyLocationEnabled(true);
 myMap.setBuildingsEnabled(true);


@Override
public void onMapClick(LatLng point) { 
    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);
}
}

1 个答案:

答案 0 :(得分:0)

您正在地图上的某个特定点(加利福尼亚州桑尼维尔的某个地方)绘制多边形。当您测试此代码时,您是否有可能不在寻找Sunnyvale?

多边形的默认填充颜色也是透明的(默认笔触颜色为黑色)。在将多边形添加到地图之前,可以通过调用PolygonOptions对象上的fillColor方法来设置填充颜色。

如果要在单击地图的位置绘制多边形,则必须使用作为onMapClick函数的参数传入的LatLng点来确定如何绘制多边形。

参考:https://developers.google.com/maps/documentation/android/shapes

编辑:

这里有一些代码可以绘制一个多边形,其中心是点击地图的点,宽度为经度/经度0.1度。 (虽然我没有测试过这个)

public void onMapClick(LatLng point) { 
    PolygonOptions rectOptions = new PolygonOptions()
    .add(new LatLng(point.lat() - 0.05, point.lng() - 0.05),
         new LatLng(point.lat() + 0.05, point.lng() - 0.05),
         new LatLng(point.lat() + 0.05, point.lng() + 0.05),
         new LatLng(point.lat() - 0.05, point.lng() + 0.05),
         new LatLng(point.lat() - 0.05, point.lng() - 0.05));
    //Optionally call fillColor(Color.BLUE) or whatever color you want
    myMap.addPolygon(rectOptions);
}