Witam , od kilku dni przeszukuje internety żeby znaleźć rozwiązanie swojego problemu ponieważ nie jestem specem w Javie. A więc próbuje w Google Maps APi dodać 2 search boxy które będą mi zmieniać słowo na lokalizacji( To mi się udało) , a następnie za pomocą funkcji distanceTo() będa pokazywały mi odległość pomiędzy tymi dwoma punktami.ale mam kilka problemów , amianowicie:
- Nie pokazuje mi się drugi marker na mapie
- Funkcja normalnie powinna liczyć ale nie wyświetla mi się na mapie trasa pomiędzy dwoma punktami
Poniżej dodaje część kodu w której to wszystko ma się robić
i jeśli jest taka możliwość to czy da się robić to wszystko za pomocą jednego buttona czy trzeba użyć dwóch ?.
public void onClick(View v)
{
EditText pierwszy_punkt = (EditText) findViewById(R.id.Punkt_A);
String location = pierwszy_punkt.getText().toString();
EditText drugi_punkt = (EditText) findViewById(R.id.Punkt_B);
String secondLocation = drugi_punkt.getText().toString();
List<Address> adressList = null;
MarkerOptions no = new MarkerOptions();
Geocoder geocoder = new Geocoder(this);
try
{
adressList = geocoder.getFromLocationName(location, 5);
adressList.addAll(geocoder.getFromLocationName(secondLocation, 5));
} catch (IOException e)
{
e.printStackTrace();
}
switch (v.getId())
{
case R.id.SzukajBtn:
{
Address myAdress = adressList.get(0);
LatLng latLng = new LatLng(myAdress.getLatitude(), myAdress.getLongitude());
no.position(latLng);
no.title("Szukane miejsce");
mMap.addMarker(no);
mMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
}
break;
case R.id.WyznaczBtn:
mMap.clear();
LatLng firstLatLng = new LatLng(adressList.get(0).getLatitude(), adressList.get(0).getLongitude());
LatLng secondLatLng = new LatLng(adressList.get(1).getLatitude(), adressList.get(1).getLongitude());
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(new LatLng(end_latitude, end_longitude));
markerOptions.title("Użyty");
markerOptions.draggable(true);
float wynik[] = new float[10];
Location.distanceBetween(firstLatLng.latitude, firstLatLng.longitude, secondLatLng.latitude, secondLatLng.longitude, wynik);
markerOptions.snippet("Odległość = " + wynik[0]);
mMap.addMarker(markerOptions);
}
}