从谷歌地图引擎发布的WMS不显示(WMS published from Google Maps En

2019-10-20 03:56发布

我是新来的JS和谷歌地图API ...我获得了一些JS代码,希望显示WMS,我在谷歌地图引擎创建的。

作为WMS似乎没有显示任何东西我都卡住了与下面的代码。

当我迷路是针对谷歌地图引擎WMS和“层”变量,我使用的资产ID为这一特定地图的基本URL。 我在这儿住丢失,并且希望得到任何帮助。

function WMSGetTileUrl1(tile, zoom) {
    var projection = window.mapA.getProjection();
    var zpow = Math.pow(2, zoom);
    var ul = new google.maps.Point(tile.x * 256.0 / zpow, (tile.y + 1) * 256.0 / zpow);
    var lr = new google.maps.Point((tile.x + 1) * 256.0 / zpow, (tile.y) * 256.0 / zpow);
    var ulw = projection.fromPointToLatLng(ul);
    var lrw = projection.fromPointToLatLng(lr);

    //The user will enter the address to the public WMS layer here.  The data must be in WGS84
    var baseURL = "https://mapsengine.google.com/17306057122701807517-17234028967417318364-4/wms/?";
    var version = "1.1.1";
    var request = "GetMap";
    var format = "image/jpeg"; //type of image returned  or image/jpeg

    //The layer ID.  Can be found when using the layers properties tool in ArcMap
    var layers = "17306057122701807517-17234028967417318364"; 
    var srs = "EPSG:4326"; //projection to display. This is the projection of google map. Don't change unless you know what you are doing.
    var bbox = ulw.lng() + "," + ulw.lat() + "," + lrw.lng() + "," + lrw.lat();

    //the size of the tile, must be 256x256
    var width = "256";
    var height = "256";

    var styles = "default";

    //Establish the baseURL.
    var url = baseURL + "version=" + version + "&request=" + request + "&Layers=" + layers + "&Styles=" + styles + "&SRS=" + srs + "&BBOX=" + bbox + "&width=" + width + "&height=" + height + "&format=" + format;

    return url;
}

Answer 1:

你有2个问题与您的代码。 首先是显而易见的。 您使用的地图ID为您的层ID。 他们是两个不同的东西。 在GME,进去层细节画面,点击“获取链接”,并拿起层ID。 它会先从17306057122701807517-但下半年会有所不同。 另外,不要忘记追加-4到最后。 这表明它,而不是一个预览发布的层。 提示:如果你把它-2你可以看到预览版本例如更新,但是未发表的一个。

现在这是方式更微妙的第二个问题。 在上面的例子中使用的EPSG代码4326是WGS84,而谷歌地图发布在谷歌的Web墨卡托这是EPSG:900913。 你不能只是换出EPSG代码使用的坐标系是不同的。 这实际上意味着,除非你重写代码来生成边界框,那么你不能使用的JavaScript。

我建议你使用从代码http://www.sigacts.com/html5/google-maps-api-with-wms-overlay/它使用正确的坐标系。 的例子实际使用MapsEngine地图为好。 只需下载代码并修改vars.js,以适应和你离开。 我已经下载并验证了它与我自己的地图工作方式,所以你应该没有问题。 提示:该代码是一老一少引用earthbuilder.google.com这是MapsEngine旧名。 请确保您更改域名和地图ID两者。

编辑:WMS是到地图获得内容的方式笨重。 你应该寻找使用MapsEngineLayer这是谷歌地图API的一部分,或者更细粒度的东西,你可以使用地图引擎API,它可以让你做属性过滤,空间查询等。



文章来源: WMS published from Google Maps Engine not displaying