получить все координаты между местоположением для iphone Map Kit - PullRequest
0 голосов
/ 17 декабря 2010

Может кто-нибудь сказать мне, как получить все значения Lat, Long между локациями ... ???В рамках реализации я бы хотел, чтобы все значения Lat, Long между начальной конечной точкой и конечной точкой рисовали маршрут.

Заранее спасибо ...

Ответы [ 2 ]

3 голосов
/ 18 декабря 2010

Поиск точек довольно прост и не требует умной тригонометрии. Обратите внимание, что если расстояние между точками должно быть определенным, скажем, каждые 100 метров, то потребуется тригонометрия. Мы сделаем простую версию, однако.

По сути, вы вычисляете разницу между широтами и разницей между долготами, решаете, сколько точек вы хотите (как отмечалось, «все» - это бесконечное число), делите расстояние на количество точек и итерируете их. (Примечание: я не тестировал этот код, но вы должны понять эту идею.)

// Making my own names for your start and stop coordinate, use your own
CLLocationCoordinate2D startPoint; // Your starting latitude and longitude
CLLocationCoordinate2D stopPoint;  // Ending latitude and longitude

CLLocationCoordinate2D newPoint;   // A newly-created point along the line

double latitudeModifier;    // Distance to add/subtract to each latitude point
double longitudeModifier;   // Distance to add/subtract to each longitude point

int numberOfPoints = 100;   // The number of points you want between the two points

// Determine the distance between the lats and divide by numberOfPoints
latitudeModifier = (startPoint.latitude - endPoint.latitude) / numbernumberOfPoints;
// Same with lons
longitudeModifier = (startPoint.longitude - endPoint.longitude) / numbernumberOfPoints;

// Loop through the points
for (int i = 0; i < numberOfPoints; i++) {
    newPoint.latitude = startPoint.latitude + (latitudeModifier * i);
    newPoint.longitude = startPoint.longitude + (longitudeModifier * i);

    // Do something with your newPoint here

}
0 голосов
/ 17 декабря 2010

Что вы подразумеваете под «все»?Поскольку пары широта / длинна являются двойными, вы говорите о бесконечном количестве точек.

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

Слово «маршрут» подразумевает, что вы хотите знать точки, которые путешествуют по дороге.Снова, что вы действительно просите?Маршруты люди могли проехать?Ходить?Сесть в автобус?Сам MapKit вообще не помогает с маршрутизацией, вам придется взглянуть на другие сторонние фреймворки.

...