【问题标题】:Google maps, tiles, Mapserver谷歌地图、瓷砖、地图服务器
【发布时间】:2014-07-09 12:56:17
【问题描述】:

我想使用 Google 地图 API 制作意大利海岸地图,但我可以提出的请求数量有限。

我已经搜索并找到了“MapServer”,但我有一些问题。谷歌地图是否使用地图服务器?图片是包含在 Mapserver 中,还是 Google 的财产?

缩放时,图块的生成是如何工作的?是 Google 地图执行此操作,还是在 MapServer API 中执行此操作?

【问题讨论】:

  • 缩放时,瓦片的生成是如何工作的?是谷歌地图做到了这一点,还是在 MapServer API 中? > 使用地图服务器和您自己的空间数据库,您可以生成自己的图块(如果您不想使用 Google 地图)。检查开源解决方案 tilecache 和 openlayers。

标签: google-maps tiles mapserver


【解决方案1】:

这些图像是否包含在 Mapserver 中,还是 Google 的财产?

它们属于 google,您使用 MapServer 来请求图像。

MapServer 可以使用 googlemaps API。 googlemaps API 根据缩放级别和坐标 (X,Y) 的请求向 MapServer 发送图块。因此,每次放大时,MapServer 都会从 googlemaps 请求一组新的图块。因此,如果您的要求有限,我想您会很快达到极限。知道您可以提出多少请求吗?

查看有关瓷砖的文档: http://mapserver.org/output/tile_mode.html#using-google-maps

【讨论】:

    【解决方案2】:

    MapServer 支持生成 Google 地图版本或 Microsoft Bing 地图版本的图块。

    请检查@zachatrocity 指出的文档,以确保您的 MapServer 支持 PROJ。

    该文档编写于 2008 年 4 月 30 日,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;
    
    };
    

    see modified preview here

    【讨论】:

      【解决方案3】:

      有多种方法可以处理此类任务。前端的大多数 GIS javascript api 都有内置函数来计算切片以根据您的切片地图图层生成多个调用(默认 16 个切片)。如果您在浏览器中打开提琴手或打开开发工具,您会看到对于单个范围查询(例如 bbox),前端会生成对 mapserver 的多个 wms 调用。他们每个人都是一个瓷砖。

      在服务器端,可以预先生成或动态生成图块。如果您对预先生成的切片缓存感兴趣,请参阅官方网站中的 MapCache 相关主题以获取更多详细信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-30
        • 1970-01-01
        • 2012-07-12
        • 2013-08-01
        • 1970-01-01
        • 2013-06-02
        • 1970-01-01
        相关资源
        最近更新 更多