Witam. Mam całą masę pytań ale zacznę od tego. Piszę aplikację z mapami Google i zaznaczonymi na niej lokalizacjami. Stworzyłem klasę obiektu o nazwie lokalizacja:
class Lokalizacja
{
private string nazwa;
private double dlugoscGEO;
private double szerokoscGEO;
public Lokalizacja(string nazwa, double szerokoscGEO, double dlugoscGEO)
{
this.nazwa = nazwa;
this.dlugoscGEO = dlugoscGEO;
this.szerokoscGEO = szerokoscGEO;
}
public string Nazwa
{
get { return nazwa; }
}
public double DlugoscGEO
{
get { return dlugoscGEO; }
}
public double SzerokoscGEO
{
get { return szerokoscGEO; }
}
W ten sposób tworzę listę lokalizacji używając JavaList:
private JavaList<Lokalizacja> GetFullListLocalization()
{
fullList.Add(new Lokalizacja("Paryż", 44.661, 0.073));
fullList.Add(new Lokalizacja("Amsterdam", 52.374, 4.895));
}
A tak dodaję listę do mapy:
fullList = GetFullListLocalization();
foreach (Lokalizacja p in fullList)
{
MarkerOptions mrk = new MarkerOptions();
mrk.SetPosition(new LatLng(p.SzerokoscGEO, p.DlugoscGEO));
mrk.SetTitle(p.Nazwa);
map.AddMarker(mrk);
}
map.UiSettings.ZoomControlsEnabled = true;
map.UiSettings.CompassEnabled = true;
map.MoveCamera(CameraUpdateFactory.ZoomOut());
map.SetInfoWindowAdapter(this);
map.SetOnInfoWindowClickListener(this);
Napisałem cos takiego aby wyświetlić informacje wybranego markera na mapie ponieważ za bardzo nie wiem jak mam to zrobić:
public View GetInfoWindow(Marker marker)
{
View view = LayoutInflater.Inflate(Resource.Layout.window_marker_info, null, false);
var a = new string(marker.Id.Where(x => char.IsDigit(x)).ToArray());
int x = int.Parse(a);
item = fullList[x];
view.FindViewById<TextView>(Resource.Id.textView1).Text = item.Nazwa;
return view;
}
Napisałem taki dziwny kod ponieważ nie wiem jak odwołać się do wybranego markera i użyłem takiego sposobu ale jest on nie praktyczny gdyż po użyciu funkcji map.Clear();
Markery zostają usunięte ale po ponownym ich dodaniu zmieniają one swój Id którego już nie mogę przypisać w ten sposób:
var a = new string(marker.Id.Where(x => char.IsDigit(x)).ToArray());
int x = int.Parse(a);
item = fullList[x];
Moja pierwsza prośba o to jak mam się odwołać poprawnie do markerów ponieważ chce zrobić ich dwa rodzaje i jakby filtr do wyboru które mają się wyświetlać.
A druga prośba to używam pętli do dodania markerów a jak mam je usunąć z mapy odwołując się do konkretnego markera?