Polyline未在GoogleMap Xamarin.Android上显示

时间:2018-05-07 13:28:39

标签: android google-maps xamarin

我正在尝试使用Xamarin为Android构建ActivityTracker应用程序。我已经可以访问Google Maps Api并可以获取当前的设备位置。下一步是连接到折线的位置,但在地图上看不到折线。

这是我试过的代码

private Polyline polyline;
public void OnMapReady(GoogleMap map)
    {
        _map = map;
        _map.MyLocationEnabled = true;
        _map.TrafficEnabled = true;
        _map.SetIndoorEnabled(true);
        PolylineOptions poly = new PolylineOptions()
            .InvokeColor(Color.Red)
            .InvokeWidth(5)
            .Visible(true)
            .InvokeZIndex(30);
        poly.Add(new LatLng(95, 50));
        poly.Add(new LatLng(90, 55));
        poly.Add(new LatLng(100, 50));

        polyline = _map.AddPolyline(poly);
        _map.MyLocationChange += MyLocationChanged; 
    }

1 个答案:

答案 0 :(得分:0)

您的代码很好,但是折线点的坐标很糟糕:Google地图使用WGS 84网络Mercator projection,截断纬度为Latmax = ±85.05113°,因此坐标LatLng(95, 50)没有任何意义(95 - 纬度过大)和LatLng(90, 55)以及LatLng(100, 50)。您的坐标应该是(-89.99,-179.99)(89.99,179.99)。请尝试使用55, 6070代替95, 90100

private Polyline polyline;
public void OnMapReady(GoogleMap map)
    {
        _map = map;
        _map.MyLocationEnabled = true;
        _map.TrafficEnabled = true;
        _map.SetIndoorEnabled(true);
        PolylineOptions poly = new PolylineOptions()
            .InvokeColor(Color.Red)
            .InvokeWidth(5)
            .Visible(true)
            .InvokeZIndex(30);
        poly.Add(new LatLng(55, 50));
        poly.Add(new LatLng(60, 55));
        poly.Add(new LatLng(70, 50));

        polyline = _map.AddPolyline(poly);
        _map.MyLocationChange += MyLocationChanged; 
    }