Использовать Google Maps в качестве фоновой карты через ArcGIS Server?


9

Я делаю (некоммерческий) проект, где у клиента нет бюджета для покупки картографических данных, подобных предоставленным TeleAtlas.

Им нужны только картографические данные для фоновой карты, и они хотели бы использовать Google Maps в качестве поставщика.

Однако решение должно интегрироваться с существующим решением на основе ArcGIS Server.

Возможно ли это из коробки с ArcGIS Server (9.3.1) или, возможно, через расширение (коммерческое или иное)?

Ответы:


10

Условия использования Google не допускают этого.

Вы можете получить доступ к их базовым картам, только если используете их элемент управления картой. Расширение ArcGIS JavaScript для Google Maps API работает с элементом управления картой и позволяет накладывать сервисы с ArcGIS Server.


7

В дополнение к использованию онлайн-инструментов ArcGIS, возможно, можно использовать данные сервера ArcGIS - через открытые API, такие как WMS или WFS - в OpenLayers , наборе инструментов веб-картографирования с открытым исходным кодом. OpenLayers оборачивает JavaScript API Карт Google - вместе с несколькими другими, такими как Bing и Yahoo! - и добавляет поддержку открытых стандартов, таких как WMS / WFS, а также поддержку OpenStreetMap .

Существует существующая поддержка использования некоторых API ArcGIS , и сообщество в целом поддерживает поиск решений для использования существующих сервисов ESRI с собственными базовыми картами, такими как Google Maps.


2

Я не знаю, как вы можете использовать карты Google и разрешить их запрашивать с вашего ArcGIS Server. Тем не менее, текущий API Javascript позволяет добавлять изображения Google на карту.

Взгляните на расширение ArcGIS JavaScript для Карт Google .

Вы также можете использовать базовые карты ArcGIS Online (введение для которых доступно здесь ) через API Silverlight, Flex или Javascript.


2

Хотя вы не можете получить прямой доступ к плиткам Google Maps (за исключением явного соглашения, заключенного напрямую с Google, что маловероятно), вы можете использовать API статической карты Google. Конечно, вы должны соблюдать условия предоставления услуг этого API.

Мой коллега Рекс очень хорошо объясняет это в своем блоге на эту тему , в дополнение к предоставлению полнофункционального примера для ArcGIS API для SL / WPF.

Что касается прокрутки слоя WMS внутри MXD и публикации в качестве сервиса, то это противоречит рекомендациям ArcGIS Server. Лучшим подходом является работа с образцом Рекса или, если вы не можете использовать Silverlight, написать свой собственный тип слоя для JavaScript или Flex API.


1

Еще до того, как вы могли просто добавить его в качестве ресурса, кто-то приготовил некоторый код ADF, который позволяет вам подключаться к Bing (тогда Virtual Earth) и обрабатывать его как другой сервис.

Я не могу точно вспомнить, кто это сделал и где можно было найти код, и я думаю, что это было для Server 9.2, но это выглядит немного знакомым:

Пользовательский источник данных VE для AGS
http://arcscripts.esri.com/details.asp?dbid=15504

Возможно, вам придется перепрыгнуть через несколько обручей, чтобы добавить карту Google за вашим сервисом, и / или использовать функциональность ArcGIS Server, но я уверен, что это выполнимо.


0

Google не обслуживает свои карты как WMS. Единственный законный способ использовать его в приложениях ESRI - использовать ArcGIS JavaScript Extension для Google Maps API.

Бинг - лучшая ставка.
Публикация WMS через каскадный картографический сервис в любом случае является плохой практикой из соображений производительности.


0

хотя это не поможет с веб-приложениями, вы можете воспользоваться этой новой услугой, которую мы добавим в Arc2Earth, где вы можете приобрести доступ к глобальным данным Google Map (а также доступ к другим картографическим сервисам: Elevation, Routing, Геокодирование и т. Д.) Непосредственно из ArcMap.


«Вы должны раскрывать свою принадлежность в своих ответах» . Большинство делают это с помощью чего-то вроде « Раскрытие информации : я владелец / разработчик Arc2Earth»
PolyGeo

0

сначала вы должны получить плитки Google или любого поставщика карт, а затем поместить их в соответствующие каталоги.

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

после этого вы должны разработать веб-сервис в формате x / y / z, который можно вызывать из приложения на стороне клинета, такого как leaflet.ja или ArcGis javascript api.

этот веб-сервис должен обслуживать изображения в клинике

Ваш запрос на это изображение должен быть

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

и, наконец, добавить веб-сервис в приложение Clinet. например, в 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

Возможно, вашим клиентам будет проще рассмотреть возможность использования Bing Maps от Microsoft в качестве фона, так как к нему можно получить доступ бесплатно из коробки. Единственный улов здесь - вам нужно будет запустить ArGIS Server 10, поскольку в 9.3.1 вам все равно нужно платить за доступ. Вот ссылка на страницу ESRI с дополнительной информацией. http://www.esri.com/software/arcgis/arcgisonline/bing-maps.html


Спасибо, но, как я уже писал, я ищу способ поддержки Google Maps, а не Bing.
Кумбая
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.