0

В последнее время просто сыплю вопросами, за ответы на которые большое спасибо. )

Еще один вопрос:

Есть код:

GeoPoint currentLocation = new GeoPoint(55.895859, 37.719324);
GeoPoint locations[] = new GeoPoint[] {
            new GeoPoint(55.895859, 37.719324),
            new GeoPoint(55.881231, 37.636800),
            new GeoPoint(55.865430, 37.648020)
    };

GeoPoint nearest = GeoPoint.getNearestLocation(currentLocation,
            Arrays.asList(locations));

public void onClick(View view){
        TextView helloTextView = (TextView)findViewById(R.id.station_name);
        helloTextView.setText(nearest.toString());
    }

Вопрос: как сделать так, чтобы выводились имена этих точек (как приписать их в коде)?

1
  • @DenShDen, Если вам дан исчерпывающий ответ, отметьте его как верный (нажмите на галку рядом с выбранным ответом). 27 мар 2015 в 16:39

1 ответ 1

1
Map<GeoPoint, String> geoPointsMap = new HashMap<GeoPoint, String>();
geoPointsMap.put(new GeoPoint(55.895859, 37.719324), "Имя для точки 1");
geoPointsMap.put(new GeoPoint(55.881231, 37.636800), "Имя для точки 2");
geoPointsMap.put(new GeoPoint(55.865430, 37.648020), "Имя для точки 3");

...

String name = geoPointsMap.get(locations[0]);
String nameForNearest = geoPointsMap.get(nearest);
4
  • А не наоборот? т.е. Map<String,GeoPoint> ?
    – arg
    27 мар 2015 в 5:59
  • @argamidon, нет, не наоборот. Чтобы по GoePoint достать его имя, нужно, чтобы GeoPoint был ключем, а его имя - значением. 27 мар 2015 в 7:11
  • @metalurgus ну если следовать требованиям ТС дословно, то да, вы правы. Хотя обычно получают какой-то объект по имени, а не имя по объекту. xD
    – arg
    27 мар 2015 в 7:22
  • 1
    @argamidon, да, согласен. Вообще правильно было бы унаследовать класс от GeoPoint, и определить в нем что-то типа getName() 27 мар 2015 в 8:35

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.