response-native-maps - Очень низкое разрешение с OpenStreetMap - PullRequest
0 голосов
/ 15 апреля 2020

Я использую реактивные карты в React Native, и я хотел использовать OpenStreetMap (потому что Google Map невероятно дорог для коммерческого проекта). MapView дает листы с очень низким разрешением, листы и надписи очень размытые (см. Рисунки ниже).

Этот код отлично работает с Картами Google:

import MapView, {
  MAP_TYPES,
  PROVIDER_DEFAULT,
  PROVIDER_GOOGLE,
} from "react-native-maps";
...
<MapView
  ref={(map) => (currentMap = map)}
  initialRegion={location}
  showsUserLocation
  style={{
    height: Globals.Layout.window.height,
    width: Globals.Layout.window.width,
  }}
></MapView>

Результат карты Google


Измените это на использование OpenStreetMap, и вы получите правильные плитки, но все размыто и в низком разрешении:

import MapView, {
  MAP_TYPES,
  PROVIDER_DEFAULT,
  PROVIDER_GOOGLE,
} from "react-native-maps";
...
<MapView
  ref={(map) => (currentMap = map)}
  initialRegion={location}
  showsUserLocation
  provider={PROVIDER_DEFAULT}
  mapType={MAP_TYPES.NONE}
  style={{
    height: Globals.Layout.window.height,
    width: Globals.Layout.window.width,
  }}
>
    <MapView.UrlTile
      urlTemplate={"http://a.tile.openstreetmap.org/{z}/{x}/{y}.png"}
      shouldReplaceMapContent={true}
    />
</MapView>

Результат OpenStreetMap (очень размыто)


Информация об окружающей среде:

  • реакция: ~ 16,9,0 => 16,9,0
  • собственная реакция: 0,61,4
  • response-native-maps: 0.26.1

Как мне сделать, чтобы увеличить разрешение плиток (или имитировать уменьшение?)

1 Ответ

0 голосов
/ 18 апреля 2020

На вашем скриншоте я вижу плитки с увеличенным увеличением, которые еще не загружены. Вместо этого ваше приложение использует плитки с меньшим масштабом и масштабом, чем до загрузки нужных плиток. Ваша проблема в том, что вы используете openstreetmap.org в качестве источника листов, что является плохой бизнес-идеей. Их инфраструктура полностью перегружена. openstreetmap.org также ежеминутно обновляет свои данные и перерисовывает тайлы, если происходят изменения данных для поддержки картографов. Но это делает его бесполезным для внешних приложений, которые просто хотят показать карту.

Используйте другого провайдера плиток, основанного на данных OSM, но оптимизированного для веб-сайтов и приложений и интеллектуального способа кэширования плиток для быстрого Доставка. Это будет стоить несколько долларов, но намного дешевле, чем G Maps.

...