Координаты центра страны в Javascript - PullRequest
2 голосов
/ 19 января 2012

Я хотел бы получить координаты центра страны, используя Javascript. Есть ли какой-нибудь XML-файл, который предоставляет такие данные для использования в веб-приложении? Я в основном пытаюсь поместить данные на карту, используя названия стран в OpenLayers.

Ответы [ 2 ]

3 голосов
/ 19 января 2012

Используя Google Maps API , вы можете использовать для этого Geocoder класс.

var geocoder = new google.maps.Geocoder();
geocoder.geocode(
    { address : "Germany" },
    function(results) {
        window.alert(results[0].geometry.bounds.getCenter());
    });

Возможно, вы захотите изучить массив results[] немного больше, чем просто получить индекс 0, но это должно помочь вам начать работу в правильном направлении.

2 голосов
/ 19 января 2012

Возможно, вы скачали подходящий набор данных ГИС и сгенерировали нужную вам информацию. Например:

С помощью такой программы, как Quantum GIS , вы можете рассчитать центроиды каждого округа и создать таблицу из названия страны и х / у.

Обратите внимание, что у Koordinates также есть векторный API, который позволяет запрашивать объекты по местоположению и, при необходимости, извлекать полную геометрию:

OpenLayers может загружать полные геометрии и вычислять центроиды (например, OpenLayers getCentroid Docs ), но, учитывая размер и сложность набора данных о мировых границах, производительность не будет очень хорошей.

Соединяя их вместе

Ваш лучший вариант, вероятно, следующий: как только вы получите центроиды из стран, используйте API-вектор координат (без получения геометрии), чтобы определить, в какой стране находится выбранная точка. Из ответа найдите центроид с помощью имя из файла данных и центрируйте карту в этом месте.

...