Я пытаюсь создать приложение ActivityTracker для Android с помощью Xamarin. У меня уже есть доступ к 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;
}
Ваш код хорош, но координаты точек ломаной линии плохие: Google Maps использует WGS 84 Web Проекция Меркатора с усеченными широтами Latmax = ±85.05113°, поэтому точки с координатами LatLng(95, 50) (95 - слишком большие для широты) и LatLng(90, 55) и LatLng(100, 50) просто нет. Ваши координаты должны быть от (-89.99,-179.99) до (89.99,179.99). Попробуйте, например, использовать 55, 60 и 70 вместо 95, 90 и 100:
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;
}