Как нарисовать координаты (широта, долгота) на холсте и увеличить его, чтобы показать только координаты ближе 50 метров? - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь представить ArrayList широт и долгот в холст, но я хочу показать эти точки только ближе, чем на 50 метров от заданной широты и долготы. Мой холст имеет ширину 240dp и высоту 240. getWidth () и getHeight () дают мне 600x600 пикселей, поэтому я хочу представить свое местоположение в середине холста и точку, которая на расстоянии 50 метров от меня только на границе холста.

Моя главная проблема в том, что я не знаю, как преобразовать широту, долготу в точки x, y и сказать холсту, что его площадь покрывает радиус 50 метров.

Мои координаты: PointF me = новый PointF (lon, lat);

Координаты других людей: ArrayList people = new ArrayList ();

Итак, я притворяюсь, что область холста показывает из заданного места в середине холста область видимости в 50 метров, например радиус.

enter image description here

1 Ответ

0 голосов
/ 15 ноября 2018

Ты бы так не поступил. Вы перебираете список точек, которые хотите отобразить, и проверяете, насколько они далеко. Тогда вы увидите, как далеко они от вас. Те, которые находятся достаточно близко, затем вы конвертируете lat / long в x / y и рисуете на холсте. Вы не скажете холсту, насколько он велик в метрах или каков центр, холст - это концепция рисунка, и он ничего не знает о широте или долготе. Он знает только пиксели и команды рисования.

...