API геокодирования ненадежен

У меня проблема с API геокодирования карты Bing. API не надежный. Один и тот же запрос не всегда будет возвращать один и тот же результат.

Этот запрос http://dev.virtualearth.net/REST/v1/Locations/?key=myKey&o=xml&countryRegion=CA&postalCode=g0a4b0

не вернет адрес

<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/search/local/ws/rest/v1">
<Copyright>
Copyright © 2015 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.
</Copyright>
<BrandLogoUri>
http://dev.virtualearth.net/Branding/logo_powered_by.png
</BrandLogoUri>
<StatusCode>200</StatusCode>
<StatusDescription>OK</StatusDescription>
<AuthenticationResultCode>ValidCredentials</AuthenticationResultCode>
<ResourceSets>
<ResourceSet>
<EstimatedTotal>0</EstimatedTotal>
<Resources/>
</ResourceSet>
</ResourceSets>
</Response>

или адрес

<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/search/local/ws/rest/v1">
<Copyright>
Copyright © 2015 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.
</Copyright>
<BrandLogoUri>
http://dev.virtualearth.net/Branding/logo_powered_by.png
</BrandLogoUri>
<StatusCode>200</StatusCode>
<StatusDescription>OK</StatusDescription>
<AuthenticationResultCode>ValidCredentials</AuthenticationResultCode>
<ResourceSets>
<ResourceSet>
<EstimatedTotal>1</EstimatedTotal>
<Resources>
<Location>
<Name>G0A 4B0, QC</Name>
<Point>
<Latitude>46.679374694824219</Latitude>
<Longitude>-72.049674987792969</Longitude>
</Point>
<BoundingBox>
<SouthLatitude>46.675511977253542</SouthLatitude>
<WestLongitude>-72.0571812840852</WestLongitude>
<NorthLatitude>46.683237412394895</NorthLatitude>
<EastLongitude>-72.042168691500734</EastLongitude>
</BoundingBox>
<EntityType>Postcode1</EntityType>
<Address>
<AdminDistrict>QC</AdminDistrict>
<AdminDistrict2>Portneuf</AdminDistrict2>
<CountryRegion>Canada</CountryRegion>
<FormattedAddress>G0A 4B0, QC</FormattedAddress>
<Locality>Saint-Marc-des-Carrières</Locality>
<PostalCode>G0A 4B0</PostalCode>
</Address>
<Confidence>High</Confidence>
<MatchCode>Good</MatchCode>
<GeocodePoint>
<Latitude>46.679374694824219</Latitude>
<Longitude>-72.049674987792969</Longitude>
<CalculationMethod>Rooftop</CalculationMethod>
<UsageType>Display</UsageType>
</GeocodePoint>
</Location>
</Resources>
</ResourceSet>
</ResourceSets>
</Response>

Есть ли способ сделать Bing API геокодирования более надежным?

Это потому, что я использую базовый ключ, а они отклоняют мой запрос, потому что сервер перегружен?

Спасибо


person Marc    schedule 20.04.2015    source источник
comment
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что он касается API Bing, он говорит только: «он не работает так, как я хочу», об этом следует спросить Microsoft ...   -  person Christophe Roussy    schedule 08.06.2017


Ответы (2)


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

Этот тип ключа ограничен по количеству запросов за определенный период, вот точная статья в MSDN, в которой подробно объясняются эти ограничения:

https://msdn.microsoft.com/en-us/library/dn894107.aspx

И еще по поводу статуса и кода:

https://msdn.microsoft.com/en-us/library/ff701703.aspx

Ограничение скорости и информация

Вот интересная часть, чтобы продолжить управление вашей ошибкой:

Ограничение скорости

В условиях использования Bing Maps пробные и базовые ключи ограничены количеством транзакций, которые они могут генерировать в течение определенного периода времени. Приложения Магазина Windows, Windows Phone и WPF имеют ограничение в 50 000 транзакций в течение 24 часов. Общедоступные веб-сайты и мобильные приложения, отличные от Windows, имеют ограничение в 125 000 транзакций в год. Ограничение скорости происходит, когда частота запросов, сделанных учетной записью к службам REST и/или SOAP Bing Maps, превышает эти условия бесплатного использования. Ограничение скорости также может происходить, когда сервисы находятся под большой нагрузкой. Это сделано для того, чтобы использование пробных и базовых ключей не прерывало работу служб для тех, кто использует корпоративные ключи. Корпоративные ключи не ограничены по скорости, и единственный способ обойти ограничение скорости — перейти на корпоративный ключ. Для получения дополнительной информации см. нашу страницу вариантов лицензирования Bing Maps.

Когда запрос ограничен по скорости, ответ не вернет результатов. Поначалу это может сбивать с толку, поскольку кажется, что Bing Maps не удалось найти результаты. Чтобы указать, что запрос был ограничен по скорости, к заголовку ответа (X-MS-BM-WS-INFO) добавляется флаг, для которого установлено значение 1, как описано на странице «Коды состояния и обработка ошибок». Чтобы улучшить взаимодействие с пользователем, приложения, использующие пробные или базовые ключи, должны искать этот флаг в заголовке и обрабатывать запросы, скорость которых ограничена. Такая простая вещь, как запись факта ограничения скорости запроса в журнале вашего приложения, может помочь при отладке обнаруженных проблем.

person Nicolas Boonaert    schedule 20.04.2015
comment
Так что это не надежно. Я не могу считать само собой разумеющимся, что результаты будут одинаковыми для запроса. - person Marc; 21.04.2015
comment
Входит ли запрос с ограничением скорости в мой годовой лимит запросов? - person Marc; 21.04.2015
comment
Ограничение скорости включает все ограничения (почасовые/ежедневные/годовые). Это надежно, пока вы используете в соответствующих и принятых пределах. - person Nicolas Boonaert; 21.04.2015
comment
Иногда мой первый запрос дня не работает. это потому, что они не хотят прерывать обслуживание ключей предприятия. - person Marc; 21.04.2015
comment
Затем вам следует обратиться в службу поддержки через портал Microsoft Bing Maps (где вы сгенерировали ключ) по электронной почте и объяснить это с помощью соответствующих журналов. Кроме того, если у вас много запросов, вы можете рассмотреть возможность использования пакетного геокодирования Bing Maps. - person Nicolas Boonaert; 21.04.2015

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

Поставщики геокодирования для использования вне карты

person mdwhatcott    schedule 06.05.2015
comment
Не совсем отвечая на вопрос в этом случае - person Nicolas Boonaert; 21.07.2015