WGS-что? WGS-84? В зависимости от того, какая точность вам нужна, вам, возможно, потребуется знать гораздо больше информации - я думаю, именно поэтому за вас проголосовали, хотя никто не удосужился оставить комментарий, объясняющий почему.
Вот два способа:
Неточно, но, вероятно, «достаточно хорошо»
Один градус широты составляет приблизительно 10001,965729 / 90 километров (расстояние от экватора до полюса, деленное на девяносто градусов) или 111,113 километра с использованием данных WGS-84. Это приблизительное значение из-за формы земли и потому, что расстояния меняются при приближении к полюсам (одна из причин использовать широту, а не долготу - в конечном итоге расстояние в один градус долготы равно нулю!) Земля также не идеальна сфера. Обе эти причины являются причиной использования более сложного подхода на основе проекций и основанных на данных, в моем втором ответе.
10001.965729km = 90 degrees
1km = 90/10001.965729 degrees = 0.0089982311916 degrees
10km = 0.089982311915998 degrees
Это использует десятичные градусы, а не градусы / минуты / секунды.
Таким образом, ваша ограничительная рамка будет вашей точкой, плюс и минус 0,08999 градусов. В качестве альтернативы вы можете использовать это число в качестве радиуса, давая вам ограничивающий круг .
Любой ГИС, читающий это, будет содрогаться. Это будет в основном точно, хотя, в зависимости от того, где вы находитесь в мире. Для радиуса 10 км это должно быть хорошо.
Гораздо точнее, но больше кода
Используйте библиотеку проекций и укажите свои данные и т. Д. Я рекомендую Proj4; он широко используется, поэтому Google возвращает кучу результатов по вопросам об этом, и есть обертки Delphi . Если у вас возникли проблемы с его использованием, опубликуйте еще один вопрос на SO - он выходит за рамки этого. На веб-сайте Proj4 есть примеры использования базовых API, и хотя они написаны на языке C, их должно быть довольно легко перевести. Их ссылка на API - лучшее место для начала, за которым следует FAQ .
Я бы использовал WGS-84 в качестве базового элемента (представление Земли), если вы не знаете конкретный объект, который вы хотите использовать, или который использовался для создания ваших координат. Это обычно используется и довольно точно.
Если ваша позиция основана на Google Картах (например), укажите проекцию Меркатора. Вы можете использовать другую проекцию или, скажем, координаты UTMвместо широты и долготы, в зависимости от источника ваших данных и от того, хотите ли вы высокую точность для небольшого локального района. (У UTM есть несколько зон, каждая из которых изменяет искажение, так что в пределах этой зоны это очень точно; если вы используете зону для координат вне ее, искажение будет значительно увеличиваться при удалении. Если вы просматриваете всю Землю, спроецированную из одной зона может быть неузнаваемой. Но в пределах зоны UTM переводы будут примерно такими же хорошими, как вы можете получить. Координаты обычно указываются в метрах, а не в градусах, поэтому это может быть более полезным для вас, если вам требуется 10 км. радиус. 10 км легко в пределах одной зоны, вам просто нужно выбрать соответствующую зону на основе вашей центральной координаты. Единственный сложный момент, когда вы приближаетесь к границе: это обычная ситуация, и это хорошо, простов соответствии с тем, как вы выбираете, какой вы используете . Proj4 также позволит вам переводить проекции, чтобы вы могли перейти от своего Mercator WGS-84 lat / long к UTM-зоне n , например, или в и из двух UTM-зон.)