Извлечь только город/населенный пункт из flickr api/YQL

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

select * from flickr.places where lat=51.558418 and lon=-1.781985 and api_key=YOU_FLICKR_API_KEY

Вот результаты моего запроса из консоли.

<?xml version="1.0" encoding="UTF-8"?>
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng"
    yahoo:count="1" yahoo:created="2011-10-25T09:35:50Z" yahoo:lang="en-US">
    <diagnostics>
        <publiclyCallable>true</publiclyCallable>
        <url execution-start-time="1" execution-stop-time="123" execution-time="122"><![CDATA[http://api.flickr.com/services/rest/?method=flickr.places.findByLatLon&lat=51.558418&lon=-1.781985]]></url>
        <user-time>124</user-time>
        <service-time>122</service-time>
        <build-version>22535</build-version>
    </diagnostics> 
    <results>
        <places accuracy="16" latitude="51.558418" longitude="-1.781985" total="1">
            <place latitude="51.547" longitude="-1.802"
                name="West Leaze, Swindon, England, GB, United Kingdom"
                place_id="sddCvK9SW703gg" place_type="neighbourhood"
                place_type_id="22"
                place_url="/United+Kingdom/England/Swindon/West+Leaze"
                timezone="Europe/London" woeid="39722"/>
        </places>
    </results>
</query>

Я хочу иметь возможность изменить place_type_id в запросе. Я знаю, что могу использовать регулярное выражение для изоляции информации, но я не уверен, что это будет работать для всех местоположений, поэтому я бы предпочел, чтобы API просто возвращал желаемый результат.


person Mild Fuzz    schedule 25.10.2011    source источник


Ответы (1)


Метод Flickr flickr.places.findByLatLon, который вызывается в фоновом режиме вашим запросом YQL, принимает ключ accuracy.

accuracy (необязательно)

Записанный уровень точности информации о местоположении. Мировой уровень 1, страна ~3, регион ~6, город ~11, улица ~16. Текущий диапазон 1-16. По умолчанию 16.

См. » документы Flickr для flickr.places.FindByLatLon.

Использовать это так же просто, как указать accuracy =n в предложении where. Значение около 10 соответствует точности, которую вы ищете, но поэкспериментируйте, чтобы увидеть, что лучше.

select * from flickr.places where 
lat=51.558418 and lon=-1.781985 and api_key=API_KEY_HERE
and accuracy=10

В сторону

Документацию по источникам данных/сервисам, используемым таблицами YQL, обычно можно получить, просмотрев описание таблицы.

desc flickr.places

Это дает много информации, обычно включая хотя бы одну ссылку на страницы документации. См. раздел meta для элементов documentationURL.

desc flickr.places

person salathe    schedule 25.10.2011