Карты Google, тайлы, Mapserver

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

Я искал и нашел "MapServer", но у меня есть несколько вопросов. Карты Google используют Mapserver? Включены ли изображения в Mapserver или они являются собственностью Google?

Когда вы масштабируете, как работает генерация тайлов? Это делают карты Google или MapServer API?


person user3815389    schedule 09.07.2014    source источник
comment
Когда вы масштабируете, как работает генерация тайлов? Это делают карты Google или MapServer API? › Используя картографический сервер и собственную пространственную базу данных, вы можете создавать свои собственные плитки (если вы не хотите использовать карты Google). Проверьте решения с открытым исходным кодом tilecache и openlayers.   -  person Ritesh A    schedule 02.08.2017


Ответы (3)


Включены ли изображения в Mapserver или они являются собственностью Google?

Они принадлежат Google, и вы используете MapServer для запроса изображений.

MapServer может использовать API googlemaps. API googlemaps отправляет MapServer плитки по запросу на основе уровня масштабирования и координат (X, Y). Таким образом, каждый раз, когда вы увеличиваете масштаб, MapServer будет запрашивать новый набор плиток из googlemaps. Итак, если ваши запросы ограничены, я думаю, вы быстро исчерпаете их. Вы представляете, сколько запросов вы можете сделать?

Ознакомьтесь с документацией по тайлам: http://mapserver.org/output/tile_mode.html#using-google-maps

person Zach Russell    schedule 25.07.2014

Плитка поддержки MapServer генерирует версию карты Google или версию карты Microsoft Bing.

Пожалуйста, проверьте документацию, указанную @zachatrocity, чтобы убедиться, что ваш MapServer поддерживает PROJ.

Эта документация была написана 30 апреля 2008 г. и больше не поддерживается Google Map JavaScript API.

Актуальную документацию по использованию собственных листов MapServer в качестве наложения можно найти здесь: https://developers.google.com/maps/documentation/javascript/examples/maptype-base

Следуйте этому образцу, но вам нужно изменить предоставленную там функцию getTile на свою собственную плитку:

CoordMapType.prototype.getTile = function(coord, zoom, ownerDocument) {
  var url = "http://[change this into your mapserver ip]]/cgi-bin/mapserv.exe?";
  url += "map=/path/to/your/mapfile.map&";
  url += "mode=tile&"; // you need this!
  url += "layers=yourLayer&";
  //url += "layers=layer1 layer2&";
  url += "tilemode=gmap&"; // you need this
  url += "tile=" + coord.x + " " + coord.y + " "+zoom; // and this

  var myMapServerTile = ownerDocument.createElement('img');
  myMapServerTile.src= url;
  return myMapServerTile;

};

см. измененный предварительный просмотр здесь

person Kampau Ocu    schedule 29.04.2015

Существует несколько способов решения подобных задач. Большинство API-интерфейсов javascript ГИС на внешнем интерфейсе имеют встроенную функцию для расчета плиток для создания нескольких вызовов (по умолчанию 16 плиток) на основе вашего мозаичного слоя карты. Если вы откроете скрипач или открытый инструмент разработки в своем браузере, вы увидите, что для одного запроса диапазона (например, bbox) внешний интерфейс генерирует несколько вызовов wms для mapserver. Каждая из них представляет собой одну плитку.

На стороне сервера тайлы могут быть предварительно сгенерированы или сгенерированы на лету. См. разделы, связанные с MapCache, на официальном сайте, чтобы получить более подробную информацию, если вы заинтересованы в предварительно сгенерированном кэше листов.

person Teng Ma    schedule 08.09.2016