Получите конкретный адрес в lat/long паре

Я помещаю превосходный ответ JLBorges на аналогичный вопрос дословно из cplusplus.com, так как это наиболее краткое объяснение, которое я прочитал по этому вопросу.

] В шаблоне, который мы пишем, есть два типа имен, которые можно использовать - зависимые имена и не зависимые имена. Зависимое имя - это имя, которое зависит от параметра шаблона; неизменяемое имя имеет то же значение, независимо от параметров шаблона.

Например:

template< typename T > void foo( T& x, std::string str, int count )
{
    // these names are looked up during the second phase
    // when foo is instantiated and the type T is known
    x.size(); // dependant name (non-type)
    T::instance_count ; // dependant name (non-type)
    typename T::iterator i ; // dependant name (type)

    // during the first phase, 
    // T::instance_count is treated as a non-type (this is the default)
    // the typename keyword specifies that T::iterator is to be treated as a type.

    // these names are looked up during the first phase
    std::string::size_type s ; // non-dependant name (type)
    std::string::npos ; // non-dependant name (non-type)
    str.empty() ; // non-dependant name (non-type)
    count ; // non-dependant name (non-type)
}

То, что зависит от зависимого имени, может быть чем-то другим для каждого конкретного экземпляра шаблона. Как следствие, шаблоны C ++ подвержены «двухфазному поиску имен». Когда шаблон сначала анализируется (до того, как выполняется какое-либо создание), компилятор просматривает не зависящие имена. Когда происходит конкретное создание шаблона, параметры шаблона известны к тому времени, и компилятор ищет зависимые имена.

На первом этапе анализатор должен знать, является ли зависимое имя именем типа или имени не-типа. По умолчанию зависимым именем считается имя не-типа.

Использовать ключевое слово typename только в объявлениях шаблонов и определениях, приведенных ниже.

blockquote>

у вас есть квалифицированное имя, которое относится к типу и зависит от параметра шаблона.

22
задан Juha Syrjälä 21 May 2010 в 16:11
поделиться

5 ответов

Google теперь поддерживает обратное геокодирование и в API JavaScript и в веб-сервисе по HTTP. Запрос похож на это:

http://maps.google.com/maps/geo?output=xml&oe=utf-8&ll=LAT,LON&key=API_KEY

Примечание, необходимо изменить LAT на широту, LON к долготе и API_KEY, чтобы быть Вами ключ API Google Maps. Сервисный возврат заканчивается на на странах который, геокодируя отмеченный как ДА в следующей электронной таблице:

http://gmaps-samples.googlecode.com/svn/trunk/mapcoverage_filtered.html

[еще 117] информация должна быть скоро найдена из официальной документации:

http://code.google.com/apis/maps/documentation/services.html#Geocoding_Direct

14
ответ дан Mika Tuupola 29 November 2019 в 04:57
поделиться

Это называют "геокодированием реверса", и там существуйте веб-сервисы, которые обеспечат эту функциональность.

я убедил бы быть опасающимся качество, масштабирование и надежность бесплатных сервисов, но здесь являюсь местом для запуска: http://www.geonames.org/export/reverse-geocoding.html

7
ответ дан Chris Ammerman 29 November 2019 в 04:57
поделиться

Вы также можете использовать библиотеку LINK REMOVED для этой цели. MKReverseGeocoder хорош, но он требует, чтобы вы использовали его с картой Google. Из справочной документации MKReverseGeocoder:

Условия обслуживания Google требуют, чтобы служба обратного геокодирования использовалась вместе с картой Google; примите это во внимание при разработке пользовательского интерфейса вашего приложения.

SSLocationManager может быть альтернативой в том случае, если ваше приложение не использует карту Google, а просто нуждается в доступе к подробной информации о текущем местоположении, имеющей только данные о широте и долготе. Он использует Yahoo! PlaceFinder API. Надеюсь, это поможет.

0
ответ дан Jason J. Nathan 29 November 2019 в 04:57
поделиться

iPhone OS 3.0 теперь имеет класс MKReverseGeocoder именно для этой цели.

2
ответ дан 29 November 2019 в 04:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: