2014-04-09 150 views
1

我编写代码,如下所示绘制多边形,但不绘制并在地图上显示为什么? 你可以检查并告诉我
请帮
谢谢....绘制多边形并更改颜色

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); 
} 
} 

回答

0

您在地图(在加州Sunnyvale的某处)上一个非常具体的点绘制多边形。有没有可能当你测试这个代码时你没有看Sunnyvale?

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

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

参考: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); 
} 
+0

你会写它,请,因为我不知道怎么写呢 – Abdullah

+0

刚刚更新我的答案。 – fxfilmxf