是否通过ArcGIS Server将Google Maps用作背景地图?


9

我正在做一个(非商业性的)项目,客户没有预算来购买像TeleAtlas提供的那样的地图数据。

他们只需要背景图的地图数据,就想使用Google Maps作为提供者。

但是,该解决方案必须与他们现有的基于ArcGIS Server的解决方案集成。

ArcGIS Server(9.3.1)可能是开箱即用的,还是可能是通过扩展(商业或其他方式)的?

Answers:



7

除了使用ArcGIS Online工具之外,还可以通过OpenWeb开源工具OpenLayers中的WAPI或WFS之类的开放API使用ArcGIS服务器数据。包装的OpenLayers谷歌地图API的Javascript -连同其他几个像Bing和Yahoo! -并增加了对开放标准(如WMS / WFS)的支持,以及对OpenStreetMap的支持。

现有使用某些ArcGIS API的支持,并且社区通常支持查找将现有ESRI服务与专有基础地图(例如Google Maps)一起使用的解决方案。



2

虽然您无法直接访问Google Maps磁贴(除非直接与Google达成了明确的协议,这不太可能),但是您可以使用Google Static Map API。当然,您必须遵守该API的服务条款。

我的同事Rex在其关于该主题的博客文章中对此进行了很好的解释,此外还为ArcGIS API for SL / WPF提供了功能齐全的示例。

关于在MXD中滚动WMS图层并作为服务发布,这与ArcGIS Server最佳做法背道而驰。更好的方法是根据Rex的示例进行操作,或者,如果不能使用Silverlight,则为JavaScript或Flex API编写自己的图层类型。


1

回到您只是将其添加为资源之前,有人编写了一些ADF代码,使您可以连接到Bing(然后称为Virtual Earth)并将其像另一种服务一样对待。

我记不清是谁做的以及在哪里可以找到代码,我认为那是针对Server 9.2的,但这看起来有些熟悉:

用于AGS的自定义数据源VE
http://arcscripts.esri.com/details.asp?dbid=15504

您可能需要跳过一些步骤才能在服务后添加Google地图,并且/或者依靠ArcGIS Server来实现功能,但是我敢保证它是可行的。


0

Google不会将其地图存储为WMS。使用ESRI应用程序使用它的唯一合法方法是通过Google Maps API的ArcGIS JavaScript扩展。

必应是一个更好的选择。
无论如何,出于性能原因,通过级联地图服务发布WMS是不好的做法。



0

首先,您必须获得google tile或任何地图提供者,然后将它们放在一些适当的目录中。

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

之后,您必须开发一个必须位于x / y / z fromat中的Web服务,该Web服务可以由clinet端应用程序(例如leaflet.ja或ArcGis javascript api)调用

此Web服务必须将图块图像提供给客户

您对此图像的请求可能是

{your url}+/google.hybrid/16/485/27411

最后将Web服务添加到客户端应用程序中。例如在arcgis javascript API中

            cycleMap1 = WebTiledLayer('your url'+"/${level}/${col}/${row}",{
            tileInfo: TileInfo({
                dpi: 96,
                rows: 256,
                cols: 256,
                origin: {
                    x: -20037508.342787,
                    y: 20037508.342787
                },
                spatialReference: {
                    wkid: 3857
                },
                lods: lods
            })

        });
        cycleMap1.setVisibility(0)
        map.addLayer(cycleMap1);

或在leaflet.js中

                var tileHtbrid = 'your url' + '/{z}/{x}/{y}';

                var tilemap = L.tileLayer(tileHtbrid, {
                    minZoom: 7, maxZoom: 25,
                    attribution: 'TileServer'
                })

-2

让您的客户考虑使用Microsoft的Bing Maps作为背景可能会更容易,因为可以免费使用。唯一要注意的是,您将需要运行ArGIS Server 10,因为在9.3.1上,您仍然需要为访问付费。这是指向ESRI页面和更多信息的链接。 http://www.esri.com/software/arcgis/arcgisonline/bing-maps.html


谢谢,但是就像我写的那样,我正在寻找一种支持Google Maps而不是Bing的方法。
坎巴亚
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.