的一些地图销
问题描述:
我写一个Xamarin Xamarin的iOS变色窗体应用程序,它实现了Android和iOS的自定义地图渲染器。我想实现自定义引脚,其中不同的颜色在我的地图上表示不同的东西。的一些地图销
我添加销到我的自定义地图的代码是在这里:
List<BasicMapAnnotation> annotationList = new List<BasicMapAnnotation>();
for (int i = 0; i < userLocations.Count; i++)
{
LatLong latLongs = JsonConvert.DeserializeObject<LatLong>(userLocations[i].coords);
var annotation = new BasicMapAnnotation(new CLLocationCoordinate2D(Convert.ToDouble(latLongs.latitude), Convert.ToDouble(latLongs.longitude)), userLocations[i].user_id, "Latitude: " + latLongs.latitude.ToString() + " Longitude: " + latLongs.longitude.ToString());
annotationList.Add(annotation);
}
nativeMap.AddAnnotations(annotationList.ToArray());
如何绘制我的脚时,我现在添加一些自定义登录,使得它们是不同的颜色?
if(something())
{
annotation.colour = Color.Green;
}
答
我相信在iOS上你可以设置PinTintColor,但是在Android上你必须为这个pin设置一个位图。
看一看,特别是自定义渲染的source code for TK.Custom map on GitHub。他们展示了如何改变引脚的颜色。
这里是从示出了改变的销颜色iOS的自定义呈现代码。
var pinAnnotationView = annotationView as MKPinAnnotationView;
if (pinAnnotationView != null)
{
pinAnnotationView.AnimatesDrop = AnimateOnPinDrop;
var pinTintColorAvailable = pinAnnotationView.RespondsToSelector(new Selector("pinTintColor"));
if (!pinTintColorAvailable)
{
return;
}
if (pin.DefaultPinColor != Color.Default)
{
pinAnnotationView.PinTintColor = pin.DefaultPinColor.ToUIColor();
}
else
{
pinAnnotationView.PinTintColor = UIColor.Red;
}
}
你的意思是我应该可以使用类似annotation.PinTintColor的东西?因为我不认为注解有不幸 –
我添加代码,以我的回答改变显示在iOS上的脚色这样的功能 - 从TK.CustomMap的iOS渲染采取 –
谢谢你,史蒂夫,如果是这样的代码中调用的自定义地图渲染? –