Как создать векторные файлы mbtiles для определенного региона по моему выбору

Я не могу создать векторные файлы mbtiles для моего города (Нашик, Махараштра, Индия), я использую nutiteq SDK для отображения автономных карт. Я попытался создать mbtile с помощью создателя Mobile Atlas, но выходной файл.mbtile не работает в Nutiteq SDK.

Пожалуйста, помогите в этом. Я хочу, чтобы в моем приложении отображался только регион.mbtiles.

Заранее спасибо.

2 ответа

MBTiles - это общий формат, который может содержать также векторные данные (тайлы), а не только растровые. Как TileMill, так и Mobile Atlas Creator могут создавать только растры, сначала один из векторных данных, а второй, извлекая его из онлайн-API. Вы можете использовать растровые MBTiles с Nutiteq SDK, пример iOS:

// file-based local offline datasource
NSString* fullpathVT = [[NSBundle mainBundle] pathForResource:@"MBTILESFILENAME" ofType:@"mbtiles"];
NTTileDataSource* tileDataSource = [[NTMBTilesTileDataSource alloc] initWithMinZoom:0 maxZoom:19 path: fullpathVT];

// Initialize a raster layer with the previous data source
NTRasterTileLayer* rasterLayer = [[NTRasterTileLayer alloc] initWithDataSource:tileDataSource];

// Add the raster layer to the map
[[self getLayers] add:rasterLayer];

Android:

MBTilesTileDataSource tileDataSource = new MBTilesTileDataSource(
            0, 19, filePath);
RasterTileLayer rasterLayer = new RasterTileLayer(tileDataSource);
mapView.getLayers().add(rasterLayer);

TileMill и Mobile Atlas Creator (MOBAC) не поддерживают создание векторных mbtile. Все источники, из которых MOBAC получает данные, являются растровыми, поэтому в принципе это невозможно. Так что нет простого и бесплатного источника для скачивания файлов, насколько я знаю. Я могу предложить два варианта:

  1. Используйте сервис Nutiteq Maps (на основе подписки), который в настоящее время находится в частной бета-версии. Технически это работает так, что вы определяете в своем приложении, какой пакет карт или пакеты могут быть загружены на устройство, а SDK загружает непосредственно выбранную вами карту.
  2. С лицензией Nutiteq Maps SDK Enteprise вы можете использовать пользовательские пакеты карт и исходные коды, а также настраиваемый контроль загрузки.

Вам следует связаться с Nutiteq, чтобы получить доступ к бета-версии или корпоративной лицензии. Отказ от ответственности: я основатель Nutiteq.

Вы можете создать MBTiles из любого файла .osm.pbf с помощью этого инструмента - https://github.com/systemed/tilemaker

  1. Загрузите файл с .osm.pbfсайта Geofabric . Для загрузки для настраиваемой области вы можете использовать Protomaps или BBBike Extract.

  2. Скачать плиточник

  3. Выполните следующую команду

      tilemaker --input netherlands.osm.pbf --output netherlands.mbtiles --process resources/process-openmaptiles.lua --config resources/config-openmaptiles.json 

Вы можете узнать больше об этом в этом сообщении блога - https://blog.kleunen.nl/blog/tilemaker-generate-map

Другие вопросы по тегам