2009-02-15

Разработка ГИС-приложений для ArcGIS Server [6 Разработка на ArcGIS JavaScript Ext. for Microsoft Virtual Earth]

Программный интерфейс предназначен для создания ГИС-клиентов, интегрирующих данные сервисов ArcGIS Server и Microsoft Virtual Earth.

Программный интерфейс расширяет Microsoft Virtual Earth API™, позволяя отображать данные ArcGIS Server поверх карт Microsoft Virtual Earth.

Предоставляет разработчику широкие возможности визуализации, картографирования, геокодирования и геообработки на основе Microsoft Virtual Earth API.

6.1   Описание ArcGIS JavaScript Ext. for Microsoft Virtual Earth

ArcGIS JavaScript Ext. for Microsoft Virtual Earth — это технология, предоставляющая доступ к объекту карты Microsoft Virtual Earth с возможностью доступа к сервисам ArcGIS Server. При использовании этой технологии разработчику доступна как функциональность Microsoft Virtual Earth API, так и выполнение задач ArcGIS Server.

Программный интерфейс позволяет:

·         отображать данные, атрибутику и символику сервисов ArcGIS Server поверх карт Microsoft Virtual Earth

·         выполнять поиск и идентификацию объектов сервисов ArcGIS Server

·         производить выборку по запросам

·         выполнять геокодирование через сервисы ArcGIS Server

·         выполнять анализ данных при помощи геообработки и отображать результаты на картах Microsoft Virtual Earth

·         выполнять сетевой анализ (Network extension для ArcGIS Server)

clip_image002

Пример приложения, выполняющего отображение адреса указанного пользователем месторасположения (обратное геокодирование)

clip_image002

Получение информации о сервисе ArcGIS Server (через интерфейс REST)

Разработчикам, уже знакомым с Microsoft Virtual Earth API, создание картографических приложений на ArcGIS JavaScript Ext. for Microsoft Virtual Earth сложностей не составит.

Библиотеки ArcGIS JavaScript Ext. for Microsoft Virtual Earth также бесплатны для использования, однако они всегда хранятся на сервере ESRI.

6.2   Ресурсы разработчика

·         Центр ресурсов по ArcGIS JavaScript Ext. for Microsoft Virtual Earth: http://resources.esri.com/arcgisserver/apis/javascript/ve/index.cfm?fa=home

§   Общее описание и примеры, Справочник по классам, Интерактивный учебник

·         Руководство Microsoft Virtual Earth API

clip_image004

Один из примеров интерактивного учебника: расчет периметра и площади нарисованного полигона

6.3   Приложение «Hello, World!» на ArcGIS JavaScript Ext. for Microsoft Virtual Earth

Преимуществом в разработке картографического приложения на ArcGIS JavaScript Ext. for Microsoft Virtual Earth являются знания Microsoft Virtual Earth API. Однако, приложение «Hello, World!» будет понятно и без таковых.

Создайте пустой html-документ vemap.html на диске и вставьте в него код приложения:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <title>Приложение «Hello, World!» на ArcGIS JavaScript Ext. for Microsoft Virtual Earth</title>

    <script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2" type="text/javascript"></script>

    <script src="http://serverapi.arcgisonline.com/jsapi/ve/?v=1.2" type="text/javascript"></script>

 

    <script language="javascript" type="text/javascript" >

        var map = null;

        function OnPageLoad() {

            var centerat = new VELatLong(45.50634690108341, -122.67883300781251);

            map = new VEMap('mymap');

            map.LoadMap(centerat, 12, VEMapStyle.Aerial, false);

                  AddAGSMap();

        }

 

        var agisve_services = null;

        var tileUrl = "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Portland/ESRI_LandBase_WebMercator/MapServer";

 

        function AddAGSMap() {

            agisve_services = new ESRI.ArcGIS.VE.ArcGISLayerFactory();

            agisve_services.CreateLayer(tileUrl, "Parcels", GetMap);  

        }

 

        function GetMap(tileSourceSpec, resourceInfo) {

            tileSourceSpec.MinZoom = 10;

            tileSourceSpec.Opacity = 0.5;

            map.AddTileLayer(tileSourceSpec, true);

        }

    </script>

</head>

 

<body onload="OnPageLoad()" >

      <div id='mymap' style="position:relative; width: 750px; height: 500px;"></div>

</body>

</html>

Пояснения к тексту программы:

·         фрагмент кода, подключающий необходимые библиотеки:

<script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2" type="text/javascript"></script>

<script src="http://serverapi.arcgisonline.com/jsapi/ve/?v=1.2" type="text/javascript"></script>

Первая строка подключает библиотеки Microsoft Virtual Earth API.

Втораябиблиотеки ArcGIS JavaScript Ext. for Microsoft Virtual Earth.

·         Код Microsoft Virtual Earth API

var centerat = new VELatLong(45.50634690108341, -122.67883300781251);

map = new VEMap('mymap');

map.LoadMap(centerat, 12, VEMapStyle.Aerial, false);

создает объект карты VEMap и устанавливает текущий экстент на Portland, USA.

·         Затем на карту Virtual Earth добавляется сервис ArcGIS Server (функция AddAGSMap()):

function AddAGSMap() {

      agisve_services = new ESRI.ArcGIS.VE.ArcGISLayerFactory();

      agisve_services.CreateLayer(tileUrl, "Parcels", GetMap);  

}

 

function GetMap(tileSourceSpec, resourceInfo) {

      tileSourceSpec.MinZoom = 10;

      tileSourceSpec.Opacity = 0.5;

      map.AddTileLayer(tileSourceSpec, true);

}

Устанавливается степень прозрачности слоя 0.5 и указывается функция, выполняющая добавление слоя на карту после его загрузки, GetMap.

·         В теле HTML-документа следует поместить контейнер для объекта карты:

<body onload="OnPageLoad()" >

       <div id='mymap' style="position:relative; width: 750px; height: 500px;"></div>

</body>

Откройте документ vemap.html в окне веб-браузера.

clip_image002[6]

Результат работы: Простое картографическое приложение, отображающее слой ArcGIS Server поверх карты Microsoft Virtual Earth

 


Скачать PDF-версию с оригинальным оформлением. © Для использования опубликованных на ресурсе материалов достаточно упоминания имени автора и адреса первоисточника. Дата обновления: 2009-02-15.

Комментариев нет: