Google Maps Android API v2 в Китае – загрузка карты заняла около часа

Что у меня есть: родное приложение для Android, использующее Android Maps API v2 (родная библиотека)

Все хорошо работает в Гонконге и на Украине. Проблемы возникли, как только мы шагнули на границе Китая. У нас есть следующие проблемы:

  • Карта загружается с 30 минут до часа.
  • Даже когда он загружен, разрешение карты очень низкое. Http://i.gyazo.com/d4f40e1a225bd48a90087c39a502e4a6.png
  • Google Map РАБОТАЕТ сам по себе: http://i.gyazo.com/dc85e3618c285ced5bba799053dd0306.png

Что я знаю о Китае:

  • Google на самом деле не очень дружелюбен, но наше приложение не является тем, которое использует карты Google в Китае, поэтому моя проблема, вероятно, не новая.
  • Существует возможность использовать карты google, размещенные локально в Китае – ditu.google.cn, но как только мы используем собственное приложение, теперь нет возможности использовать веб-представление карты вместо собственной реализации (у нас есть Множество настроек)
  • Я знаю, что лучше не использовать HTTPS с картами Google (вы можете прочитать это здесь: Google Maps Geolocation API для Китая )

Вопрос в том:

  • Можем ли мы как-то улучшить нагрузку на карту? Можем ли мы каким-то образом переопределить источник карты google, чтобы использовать ditu.google.cn?
  • Можем ли мы каким-то образом отключить HTTPS в Map API?
  • Любые другие решения этой проблемы, которые могут применяться на основе сервисов google. Возможно, есть некоторые недокументированные функции?

То, что не ожидалось, как ответ – это что-то вроде «Use Baidu». Я знаю Baidu, и это вариант резервного копирования veeerryyy, как только у них есть api docs на китайском языке.

Это означает, что API геокодирования на основе ditu.google.cn работает хорошо.

Заглядывая вперед, спасибо!

Solutions Collecting From Web of "Google Maps Android API v2 в Китае – загрузка карты заняла около часа"

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

Пример использования:

TileProvider tileProvider = new UrlTileProvider(256, 256) { //... @Override public URL getTileUrl(int x, int y, int zoom) { /* Define the URL pattern for the tile images */ String s = String.format("http://my.image.server/images/%d/%d/%d.png", zoom, x, y); if (!checkTileExists(x, y, zoom)) { return null; } try { return new URL(s); } catch (MalformedURLException e) { throw new AssertionError(e); } } //... } 

Вы можете заменить my.image.server на ditu.google.cn и использовать внешний серверный API для получения изображений в виде плитки. В Картах вы можете установить OnCameraChangeListener , поэтому приложение будет загружать фрагменты с внешнего сервера, когда карта масштабируется или панорамируется.

Подробнее: https://developers.google.com/maps/documentation/android/tileoverlay

Google по-прежнему не имеет лицензии на публикацию карт в Китае (по крайней мере, по мере моей последней информации). Возможно, в ближайшее время службы Google Map будут заблокированы.

Многие китайские сайты, в том числе и наши, используют JS Google, а также их API-сервисы, среди которых Google Geocoding api. В Китае, baidu (NASDAQ: BIDU) и sogou [второстепенная поисковая система, часть sohu (NASDAQ: SOHU)], оба предоставили онлайн-карты, а также API,

Карта baidu api home – http://dev.baidu.com/wiki/map/in

Карта sogou api home http://map.sogou.com/api/

На самом деле, в Китае, на данный момент, google maps api все еще доступны. Как из недавних новостей chinatech.us, Google China прошел ежегодную проверку и получил больше возможностей для получения онлайн-лицензии на бизнес-карту, поэтому 3 API доступны и доступны.