私の質問はthisに似ていますが、私のコードが他の投稿に記載されている回答にどのように関係しているかわかりません。Xamarin iOS - Mapkit ArgumentNullException:値はnullにできません
Xamarin iOS
にMapKit
を使用して、私のXamarin iOSプロジェクトのカスタムマップを作成しています。私は現時点でいくつかのカスタムのことが起こっており、Polygons
annotations
と今はcircles
を使っています。
私はちょうど私のマップにMKCircle
を追加することが、私は自分のマップにサークルオーバーレイを追加しようとしたとき、私は、このエラーが発生します実装し始めています:
System.ArgumentNullException: Value cannot be null. Parameter name: polygon
私は私が同じことを返すようにしようとされていると思います2つのレンダラーにオーバーレイするが、私はこれをどのように嫌うかわからない。ここは私のコードです:
for(int i=0; i < hazards.Count; i++) //This adds 3 circles in my example
{
LatLong ltlng = JsonConvert.DeserializeObject<LatLong>(hazards[i].coordinates);
coords[i].Latitude = Convert.ToDouble(ltlng.latitude);
coords[i].Longitude = Convert.ToDouble(ltlng.longitude);
var overlay = MKCircle.Circle(coords[i], Convert.ToDouble(hazards[i].radius));
nativeMap.AddOverlay(overlay); //this is the suspected problem
}
そして、ここに私のレンダラコード:
MKOverlayRenderer GetOverlayRenderer(MKMapView mapView, IMKOverlay overlayWrapper)
{
if (!Equals(overlayWrapper, null))
{
var overlay = ObjCRuntime.Runtime.GetNSObject(overlayWrapper.Handle) as IMKOverlay;
polygonRenderer = new MKPolygonRenderer(overlay as MKPolygon)
{
FillColor = UIColor.Red,
StrokeColor = UIColor.Blue,
Alpha = 0.4f,
LineWidth = 9
};
}
return polygonRenderer;
}
私はこのような私のレンダラのコードに何かを追加する必要がありますか?:
circleRenderer = new MKCircleRenderer(overlay as MKCircle){};
overlayWrapperがnullの場合、GetNSObjectはGetNSObjectの結果はIMKOverlayにキャストすることができない、nullを返し、またはオーバーレイはできませんMKポリゴンにキャストしてください。暗黙のキャストが失敗した場合、nullが返されます。 – john