как получить широту или долготу в HTML 5 - PullRequest
0 голосов
/ 10 января 2011

Несколько месяцев назад я написал что-то, чтобы получить широту или долготу от Google API.позднее я получаю базу данных от drupal по широте или долготе для большинства городов мира.

, но проблема в том, что одно и то же название города можно найти два или более раз в области.как Фирозабад в Индии и Бангладеш оба.Агра в UP и агар в Раджастхане.

означает путаницу в названии пользователя, если они нашли два города с одинаковыми именами, они запутались.

Я слышал, что HTML 5 поддерживает широту или долготупосетитель, но мне нужна широта или долгота, где они родились, или город, который они хотят использовать, чтобы заполнить форму.

как я могу получить широту или долготу из API, такого как Google и некоторые другие.

процесс таков:

пользователь помещает местоположение в текстовое поле для получения своей широты или долготы.

для правильной вещи я хочу показать им все местоположение [если одна и та же вещь обнаружила более одного].

они могут выбрать правильное местоположение и после щелчка они могут получить широту и долготу.

как я могу сделать это, используя любой API.

Ответы [ 2 ]

1 голос
/ 10 января 2011

Если я вас правильно понял, вот функция Javascript, которая возвращает список фактических местоположений на основе адреса (полного или частичного), который ввел пользователь:

getLocationsByAddress = function(address, onComplete) {
    var geocoder = null;
    var locations = [];
    var location = null;

    geocoder = new GClientGeocoder();
    geocoder.getLocations(address, function(response) {
        if (!response || response.Status.code != 200) {
            if (typeof (onComplete) != 'undefined') {
                onComplete([]);
            }
        } else {
            for (var i = 0; i < response.Placemark.length; i++) {
                location = response.Placemark[i];
                locations[locations.length] = {
                    address: location.address,
                    x: location.Point.coordinates[1],
                    y: location.Point.coordinates[0],
                    zoom: 14
                }
            }

            if (typeof (onComplete) != 'undefined') {
                onComplete(locations);
            }
        }
    });
}

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

UPDATE

Как сказал @Maxym, API V2 считается устаревшим и поэтому не должен использоваться дальше.

Взгляните на этот плагин jQuery . Он утверждает, что работает как с V2, так и с V3, поэтому вы можете изучить исходный код, чтобы узнать, как они это делают с V3.

0 голосов
/ 10 января 2011

Я не уверен, что речь идет о HTML 5. Вам просто нужно создать своего рода подсказки, где пользователь сможет выбрать, какой именно город он имеет в виду (как Google делает на maps.google.com - вы вводите "Одесса" исм. список городов с таким названием).У Google есть геокодер API , но, вероятно, его следует использовать с Google Map (просто прочитайте лицензию).
Так что процесс прост: пользователь вводит город, вы отправляете его в геокодер, чтобы получить список городов с такимиимя и их координаты.Когда вы показываете этот список, пользователь выбирает один, и у вас есть его координаты.
Там есть , документация по использованию Geocoding API v3 в JavaScript, а также примеры. В этом показано, как получить координаты из адреса, примите во внимание, что они обрабатывают только результаты [0], но вам нужно перебрать результаты, чтобы получить все города.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...