Как мне автоматически найти местоположение пользователя? - PullRequest
11 голосов
/ 28 февраля 2009

В настоящее время я работаю над списком выставок. Я собираюсь отобразить информацию о шоу по местоположению для пользователя, отсортированного различными способами.

Я знаю Я мог бы спросить пользователя, где они находятся, когда они впервые заходят на сайт, но я заметил, что многие сайты имеют встроенную возможность автоматического определения местоположения (пример см. 1005 * Last.fm"События: списки концертов в вашем регионе").

Как они это делают? В настоящее время я создаю свой сайт в Ruby on Rails.

Ответы [ 5 ]

9 голосов
/ 28 февраля 2009

Вот ссылка на документацию по соответствующему API Карт Google:

http://code.google.com/apis/ajax/documentation/#ClientLocation

Показывает пример того, как его использовать:

/**
 * Set the currentState_ and currentCountry_ properties based on the client's
 * current location (when available and in the US), or to the defaults.
 */
InTheNews.prototype.setDefaultLocation_ = function() {
  this.currentState_ = this.options_.startingState;
  if (google.loader.ClientLocation &&
      google.loader.ClientLocation.address.country_code == "US" &&
      google.loader.ClientLocation.address.region) {

    // geo locate was successful and user is in the United States. range
    // check the region so that we can safely use it when selecting a
    // state level polygon overlay
    var state = google.loader.ClientLocation.address.region.toUpperCase();
    if (InTheNews.stateNames[state]) {
      this.currentState_ = state;
    }
  }
  this.currentCountry_ = "US";
}

И говорит вам, что вы получите от него:

При заполнении google.loader.ClientLocation объект заполнен следующим Свойства детализации на уровне метрополитена:

  • ClientLocation.latitude - предоставляет низкую разрешающую способность, связанную с IP-адресом клиента

  • ClientLocation.longitude - предоставляет долготу низкого разрешения, связанную с IP-адресом клиента

  • ClientLocation.address.city - указывается название города, связанного с IP-адресом клиента

  • ClientLocation.address.country - указывается название страны, связанной с IP-адресом клиента

  • ClientLocation.address.country_code - предоставляет имя кода страны ISO 3166-1, связанного с IP-адресом клиента

  • ClientLocation.address.region - предоставляет название региона, специфичное для страны, связанное с IP-адресом клиента

1 голос
/ 28 февраля 2009

Они обычно используют разрешение IP по таблицам IP. ip2nation может дать некоторое представление

0 голосов
/ 09 марта 2011

http://humbuckercode.co.uk/licks/gems/geoip/ - это простая жемчужина, использующая бесплатные или платные библиотеки Maxminds.

Простая настройка, обновления схемы не требуются.

0 голосов
/ 27 октября 2009

Существует новый способ, фактически это лучший способ определения географического местоположения, поскольку браузер изначально поддерживает API-интерфейс W3C для геолокации ... Вы должны проверить GeoMereLaal .

0 голосов
/ 28 февраля 2009

Вы можете посмотреть на Maxoind GeoLite soluton для определения местоположения IP. Решение с открытым исходным кодом.

...