Consumindo o Google Maps como mapa de fundo através do ArcGIS Server?

9

Estou fazendo um projeto (não comercial) em que o cliente não tem o orçamento para comprar dados do mapa como o fornecido pela TeleAtlas.

Eles precisam apenas de dados do mapa para um mapa em segundo plano e desejam usar o Google Maps como provedor.

No entanto, a solução precisa se integrar à sua solução existente baseada no ArcGIS Server.

É possível imediatamente com o ArcGIS Server (9.3.1) ou talvez através de uma extensão (comercial ou não)?

Cumbayah
fonte

Respostas:

10

Os Termos e Condições do Google não permitem isso.

Você só pode obter acesso aos mapas base deles se usar o controle de mapa deles. A extensão ArcGIS JavaScript para API do Google Maps funciona com seu controle de mapa e permite sobrepor serviços do ArcGIS Server.

jiriteach
fonte
7

Além de usar as ferramentas online do ArcGIS, pode ser possível usar os dados do servidor ArcGIS - por meio de APIs abertas como WMS ou WFS - no OpenLayers , um kit de ferramentas de mapeamento da Web de código aberto. O OpenLayers envolve a API Javascript do Google Maps - junto com várias outras, como Bing e Yahoo! - e adiciona suporte para padrões abertos como WMS / WFS, bem como suporte para o OpenStreetMap .

Existe suporte existente para o uso de algumas APIs do ArcGIS , e a comunidade geralmente oferece suporte para encontrar soluções para usar os serviços ESRI existentes com mapas de base proprietários como o Google Maps.

Christopher Schmidt
fonte
2

Não sei como você pode consumir os mapas do Google e permitir que eles sejam solicitados no ArcGIS Server. No entanto, a API Javascript atual permite adicionar imagens do Google ao seu mapa.

Dê uma olhada na extensão ArcGIS JavaScript para Google Maps .

Você também pode usar os mapas base do ArcGIS Online (uma introdução disponível aqui ) por meio das APIs Silverlight, Flex ou Javascript.

Michael Todd
fonte
2

Embora você não possa acessar os blocos do Google Maps diretamente (exceto um contrato explícito negociado diretamente com o Google, o que é improvável), você pode usar a API do Google Static Map. Obviamente, você precisaria cumprir os termos de serviço dessa API.

Meu colega Rex explica tudo muito bem em seu blog sobre o assunto , além de fornecer uma amostra totalmente funcional para a API do ArcGIS para SL / WPF.

Quanto a rolar uma camada WMS dentro de um MXD e publicar como serviço, isso vai contra as melhores práticas do ArcGIS Server. Uma abordagem melhor é trabalhar com a amostra de Rex ou, se você não puder usar o Silverlight, escreva seu próprio tipo de camada para as APIs JavaScript ou Flex.

zwaap
fonte
1

Antes que você pudesse adicioná-lo como um recurso, alguém criou um código ADF que permite conectar-se ao Bing (então Virtual Earth) e tratá-lo como outro serviço.

Não me lembro exatamente quem fez isso e onde o código pode ser encontrado, e acho que era para o Server 9.2, mas isso parece um pouco familiar:

Fonte de dados personalizada VE para AGS
http://arcscripts.esri.com/details.asp?dbid=15504

Você pode ter que pular algumas etapas para adicionar um mapa do Google por trás do seu serviço e / ou confiar em um ArcGIS Server para funcionalidade, mas eu aposto que é possível.

mwalker
fonte
0

Google não servidor seus mapas como WMS. A única maneira legítima de consumi-lo com aplicativos ESRI é através da extensão ArcGIS JavaScript Extension para Google Maps API.

Bing é uma aposta melhor.
A publicação do WMS por meio de um serviço de mapas em cascata é uma prática inadequada por razões de desempenho.

Simon
fonte
0

Embora não ajude com aplicativos da Web, você pode conferir este novo serviço que adicionaremos ao Arc2Earth, onde você pode adquirir acesso a dados mundiais do Google Maps (além de outros serviços de mapas: elevação, roteamento, Geocodificação etc) diretamente do ArcMap.

bFlood
fonte
"você deve divulgar sua afiliação em suas respostas" . A maioria faz isso com algo como " Divulgação : eu sou o proprietário / desenvolvedor do Arc2Earth"
PolyGeo
0

primeiro, você deve obter os blocos do google ou qualquer provedor de mapas e, em seguida, colocá-los em alguns diretórios apropriados.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

depois disso, você deve desenvolver um serviço da web que deve estar no formato x / y / z que pode ser chamado pelo aplicativo da clinet, como leaflet.ja ou api de javascript do ArcGis

este serviço da web deve veicular imagens em mosaico para clinet

seu pedido para esta imagem deve ser

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

e, finalmente, adicione o serviço da web ao aplicativo clinet. por exemplo, na 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);

ou em leaflet.js

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

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

Pode ser mais fácil levar seus clientes a considerar o uso do Bing Maps da Microsoft como pano de fundo, pois isso pode ser acessado gratuitamente imediatamente. O único problema aqui é que você precisa estar executando o ArGIS Server 10, pois na 9.3.1 você ainda precisa pagar pelo acesso. Aqui está um link para e uma página ESRI com mais informações. http://www.esri.com/software/arcgis/arcgisonline/bing-maps.html

Chris M
fonte
Obrigado, mas como escrevi, estou procurando uma maneira de oferecer suporte ao Google Maps, não ao Bing.
Cumbayah