我根据折线文档编写了代码,但代码中没有出现任何错误,也没有代码引发异常。即使应用程序运行正常,但是应该显示的折线也没有加载到我的Android应用程序的地图上。
foreach (var route in routeList)
{
if (route.RouteSegmentPoints != null)
{
Polyline polyline;
int color = Android.Graphics.Color.Black;
PolylineOptions poly =
Utils.GetPolyLineOptions(color, 100, true, 100);
polyline = _map.AddPolyline(poly);
for (int i=0;i<route.RouteSegmentPoints.Count;i++)
{
point = new
LatLng(Convert.ToDouble(route.RouteSegmentPoints[i].Latitude),
Convert.ToDouble(route.RouteSegmentPoints[i].Longitude));
//endPoint = new
LatLng(Convert.ToDouble(route.RouteSegmentPoints[i+1].Latitude),
Convert.ToDouble(route.RouteSegmentPoints[i+1].Longitude));
poly.Add(point);
}
//System.Console.WriteLine("single Route");
}
}
如果有人知道解决方案,请提前告知我。
答案 0 :(得分:0)
在将值添加到poly
之前,应先为_map
分配值,这样就不会传递添加到其中的值。
foreach (var route in routeList)
{
if (route.RouteSegmentPoints != null)
{
Polyline polyline;
int color = Android.Graphics.Color.Black;
PolylineOptions poly = Utils.GetPolyLineOptions(color, 100, true, 100);
for (int i=0;i<route.RouteSegmentPoints.Count;i++)
{
point = new
LatLng(Convert.ToDouble(route.RouteSegmentPoints[i].Latitude),
Convert.ToDouble(route.RouteSegmentPoints[i].Longitude));
poly.Add(point);
}
polyline = _map.AddPolyline(poly);
}
}
如果这也不起作用,您可以尝试将代码中的最后一行包装到“在Ui线程上运行”,因为在此线程上执行此代码的代码可能无法更新UI,具体取决于线程:
Activity.RunOnUiThread(() => {
polyline = _map.AddPolyline(poly);
});