我在下面看到编写代码来绘制多边形,但是没有在地图上绘图和显示为什么?
你能检查一下吗?
请帮助
谢谢....
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 :(得分: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);
}