2014-04-09 147 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