9

I am doing a (non commercial) project where the client doesn't have the budget for purchasing map data like that provided by TeleAtlas.

They only need map data for a background map, and they'd like to use Google Maps as provider.

However, the solution has to integrate with their existing ArcGIS Server based solution.

Is it possible out of the box with ArcGIS Server (9.3.1) or perhaps through an extension (commercial or otherwise)?

10

Google's Terms and Conditions do not allow this.

You can only get access to their basemaps if you use their map control. The ArcGIS JavaScript Extension for Google Maps API works with their map control and allows you to overlay services from ArcGIS Server.

7

In addition to using ArcGIS online tools, it may be possible to use the ArcGIS server data -- via open APIs like WMS or WFS -- in OpenLayers, an Open Source web mapping toolkit. OpenLayers wraps the Google Maps Javascript API -- along with several others like Bing, and Yahoo! -- and adds support for open standards like WMS/WFS, as well as support for OpenStreetMap.

There is existing support for using some of the ArcGIS APIs, and the community is generally supportive of finding solutions to use existing ESRI services with proprietary base maps like Google Maps.

2

There's no way that I know of for you to consume Google's maps and enable them to be requested from your ArcGIS Server. However, the current Javascript API allows you to add Google's images to your map.

Take a look at the ArcGIS JavaScript Extension for Google Maps.

You could also use the ArcGIS Online basemaps (an introduction for which is available here) via the Silverlight, Flex, or Javascript APIs.

2

While you cannot access the Google Maps tiles directly (barring an explicit agreement negotiated with Google directly, which is unlikely), you can use the Google Static Map API. Of course, you would have to comply with that API's terms of service.

My colleague Rex explains this all very well in his blog post on the subject, in addition to providing a fully functional sample for the ArcGIS API for SL/WPF.

As to rolling a WMS layer inside an MXD and publishing as a service, this goes against ArcGIS Server best practices. A better approach is to work off of Rex's sample or, if you can't use Silverlight, write your own layer type for the JavaScript or Flex APIs.

1

Back before you could just add it as a resource, someone cooked up some ADF code that let you connect to Bing (then Virtual Earth) and treat it like another service.

I can't exactly remember who did it and where the code could be found, and I think it was was for Server 9.2, but this looks a little familiar:

Custom Data Source VE for AGS
http://arcscripts.esri.com/details.asp?dbid=15504

You might have to jump through some hoops to add a Google map behind your service, and/or rely on an ArcGIS Server for functionality, but I bet it's do-able.

0

Google dont server up their maps as WMS. Only legit way to consume it with ESRI apps is through the ArcGIS JavaScript Extension for Google Maps API.

Bing is a better bet.
Publishing WMS through a cascading map service is bad practise for performance reasons anyhow.

0

while it won't help with web apps, you can check out this new service that we'll be adding to Arc2Earth where you can purchase access to worldwide Google Map data (as well as access to their other Map services: Elevation, Routing, Geocoding etc) directly from ArcMap.

0

at first you must obtain google tiles or any map provider and next put them in some appropriate directories.

enter image description here

enter image description here

enter image description here

after that you must develop a web service that must be in x/y/z fromat that can be call by clinet side application such as leaflet.ja or ArcGis javascript api

this web servic must serve tile images to clinet

your request for this image mus be

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

and finaly add the web servic to clinet applicaation. for example in 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);

or in leaflet.js

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

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

It might be easier to get your clients to consider using Microsoft's Bing Maps as a background as this can be accessed for free out of the box. The only catch here is you would need to be running ArGIS Server 10 since at 9.3.1 you still need to pay for access. Here is a link to and ESRI page with more info. http://www.esri.com/software/arcgis/arcgisonline/bing-maps.html

  • Thanks, but like I wrote, I am looking for a way to support Google Maps, not Bing. – Cumbayah Jul 30 '10 at 11:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.