我有一個由CLLocationCoordinate2D數組(點)組成的MKPolyline。這很好。單擊 - 在地圖上繪製MKPolyline
我加入這行來作爲地圖疊加,就像這樣:Map.AddOverlay(line);
我事件中設置這樣的:Map.SetVisibleMapRect(line.BoundingMapRect, true);
但該行不現身雖然地圖的邊界是正確的。
我正在調查MKPolylineView,但無法讓它工作。
任何人都知道設置顏色和線寬?
感謝
我有一個由CLLocationCoordinate2D數組(點)組成的MKPolyline。這很好。單擊 - 在地圖上繪製MKPolyline
我加入這行來作爲地圖疊加,就像這樣:Map.AddOverlay(line);
我事件中設置這樣的:Map.SetVisibleMapRect(line.BoundingMapRect, true);
但該行不現身雖然地圖的邊界是正確的。
我正在調查MKPolylineView,但無法讓它工作。
任何人都知道設置顏色和線寬?
感謝
經過大量撓頭,這裏是如何在的MKMapView顯示MKPolyline:
步驟1:地圖GetViewForOverlay創建委託方法
Map.GetViewForOverlay = Map_GetViewForOverlay;
如果地圖是的MKMapView。
MKOverlayView Map_GetViewForOverlay(MKMapView mapView, NSObject overlay)
{
if(overlay.GetType() == typeof(MKPolyline))
{
MKPolylineView p = new MKPolylineView((MKPolyline)overlay);
p.LineWidth = 2.0f;
p.StrokeColor = UIColor.Green;
return p;
}
else
return null;
}
第2步:創建MKPolyline
MKPolyline line = MKPolyline.FromCoordinates(polyPoints);
的一個新的實例,其中PolyPoints是一個CLLocationCoordinate2D數組。
第3步:添加疊加層到地圖
Map.AddOverlay(line);
第4步:用如下的代碼進行縮放和改變地圖範圍,以適應航線
Map.SetVisibleMapRect(line.BoundingMapRect, true);
我敢肯定,如果你的意圖是在MapView上動態繪製一個地圖,給出一個支持模型對象,該對象指示兩個座標,您需要在這裏查看我的項目:
https://github.com/anujb/MapWithRoutes
這將允許您覆蓋路徑,並且隨着地圖更改而更新。它是一個obj-C端口的修改版本,它使用後臺線程,因此不會阻塞。
感謝,
Anuj
謝謝Anuj,我會看看它並發表評論 – 2011-09-08 21:04:52
我沒有使用MonoTouch的,但你實現viewForOverlay委託方法?地圖視圖的委託屬性是否設置?您是否可以將常規註釋添加到地圖? – Anna 2011-05-29 17:04:38
是的,我可以添加常規註釋。我嘗試實現viewForOverlay委託,但不起作用。你有Objective-C中viewForOverlay的例子嗎? – 2011-05-29 17:21:11
請參閱http://stackoverflow.com/questions/5474299/iphone-mkmapview-mkpolygon-issues/5474737#5474737。還可以嘗試蘋果示例應用程序[Breadcrumb](http://developer.apple.com/library/ios/ipad/#samplecode/Breadcrumb/Introduction/Intro.html)和KMLViewer(儘管這一點有點過於複雜)。 – Anna 2011-05-29 17:36:18