Extending ASP.NET: используем Bing Maps APIs в своих веб-приложениях

воскресенье, 20 июня 2010, Александр Краковецкий

Все мы пользуемся картами от Google, Яндекс, но мало обращаем внимания на Bing Maps. Причина здесь одна, но очень неприятная - покрытие восточной Европы практически нет. Но, несмотря на то, что сам пользуюсь картами от Google, мне очень нравятся карты Bing.

Что мне нравится в Bing картах:

  • интерфейс на Silverlight, где также используются такие технологии как DeepZoom + PhotoSynth - все вместе это создает просто изумительную картинку и возможности;
  • отличная скорость работы - после того, как приложение запустилось (на это необходимо чуть больше времени, чем на AJAX версию), дальнейшая работа очень плавная и приятная;
  • данные подгружаются асинхронно, что позволяет начать работу не дожидаясь пока все загрузится.

Эти возможности на данный момент являются уникальными и никакие другие вендоры не могут похвастаться таким функционалом и интерактивностью. Поэтому считаю, что необходимо обратить внимание на Bing Maps, тем более, что недавно вышел Bing Maps API, который позволяет разрабатывать свои приложения для Bing Maps и использовать карты на своих приложениях. Рассмотрим основные принципы работы с картами более детально.

Использование Bing Maps: AJAX версия

Демо-страница: http://www.microsoft.com/maps/isdk/ajax/

Все это выглядит следующим образом:

Чтобы отобразить элемент управления Bing Maps, в самом простом случае, необходимо написать такой код:



 
   
   
   
   
 
 
   


 

Возможности Bing Map AJAX Control

Карты можно отображать в разных режимах: 2D, 3D, road, aerial, bird's eye. Ниже перечислены некоторые возможности, с которыми можно поиграться на демо-странице.

Управление картой:

  • масштабирование (+/-)
  • установка центра карты
  • установка режима карты
  • перемещение карты

Управление элементами карты:

  • показать / спрятать панель навигации
  • добавить / удалить свой элемент

Использование фигур:

  • добавить / удалить фигуры
  • показать / спрятать фигуры
  • добавить на карту собственную фигуру
  • показать / спрятать блок с информацией
  • удалить все фигуры
  • кластеризация отмеченных точек (pushpins)

Использование слоев (layers):

  • возможность создания слоя, добавления / удаления фигуры на слои
  • показать / спрятать слой
  • удалить слой, удалить все слои

Импорт данных для использования в слоях:

  • пример: добавление GeoRSS слоя
  • пример:добавление коллекции от bing.com

Поиск информации:

  • поиск местоположения
  • поиск рядом
  • отображение результатов поиска на слое
  • использование callback
  • получение и отображение маршрутов и направлений движения
  • нахождение кратчайших путей, отображение километража
  • маршруты пеших прогулок

Работа с 3D картами:

  • возможность переключения 2D - 3D
  • map view
  • последовательное перемещение

Использование событий и обратных вызовов.

Получение информации о широте, долготе, конвертация значений в пиксели, получение версии карты.

На данный момент последняя версия Bing карт - 6.2.

Maps Silverlight Control Interactive SDK

Демо-страница: http://www.microsoft.com/maps/isdk/silverlight/

Более богатые возможности для отображения информации и интерактивности предлагает Silverligh версия Bing Maps.

Выглядит это таким образом:

Для отображения карты, в самом простом случае, необходимо воспользоваться таким кодом (XAML):

  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:m="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl">
 
    
  

Возможности Silverlight версии не уступают AJAX - аналогу, но выглядит это все намного лучше.

Bing Maps Services

Вы можете использовать различные API (необходимо получить уникальный API key) - SOAP, REST, Spartial, MapPoint.

Bing Maps SOAP Services

Позволяют интегрировать карты и изображения, искать направления движения, расстояния в ваших настольных и веб-приложениях и бизнес-процессах. Можно использовать такие веб-сервисы:

Дальше в приложение добавляем пространства имен:

using BingMapsSample.GeocodeService;
using BingMapsSample.SearchService;
using BingMapsSample.ImageryService;
using BingMapsSample.RouteService;

Пример функции для нахождения широты и долготы по адресу:

private String GeocodeAddress(string address)
{
    string results = "";
    string key = "insert your Bing Maps key here";
    GeocodeRequest geocodeRequest = new GeocodeRequest();

    // Set the credentials using a valid Bing Maps key
    geocodeRequest.Credentials = new GeocodeService.Credentials();
    geocodeRequest.Credentials.ApplicationId = key;

    // Set the full address query
    geocodeRequest.Query = address;

    // Set the options to only return high confidence results 
    ConfidenceFilter[] filters = new ConfidenceFilter[1];
    filters[0] = new ConfidenceFilter();
    filters[0].MinimumConfidence = GeocodeService.Confidence.High;

    // Add the filters to the options
    GeocodeOptions geocodeOptions = new GeocodeOptions();
    geocodeOptions.Filters = filters;
    geocodeRequest.Options = geocodeOptions;

    // Make the geocode request
    GeocodeServiceClient geocodeService = new GeocodeServiceClient();
    GeocodeResponse geocodeResponse = geocodeService.Geocode(geocodeRequest);

    if (geocodeResponse.Results.Length > 0)
        results = String.Format("Latitude: {0}\nLongitude: {1}", 
          geocodeResponse.Results[0].Locations[0].Latitude, 
          geocodeResponse.Results[0].Locations[0].Longitude);
    else
        results = "No Results Found";

    return results;
}

Если вы введете адрес "1 Microsoft Way, Redmond, WA", то получите на выходе:

Lat: 47.64312

Long: -122.130609

Более детально на странице http://msdn.microsoft.com/en-us/library/dd221354.aspx.

Bing Maps REST Services

Могут использоваться для выполнения таких задач, как создание карт с собственными отмеченными точками, расчет маршрутов, с использованием возможностей геокодирования:

  • Locations API: нахождение объекта по адресу, точки или запросу;
  • Imagery API: получение статической карты, получение метаинформации;
  • Routes API: нахождение маршрутов.

Более детально на странице http://msdn.microsoft.com/en-us/library/ff701702.aspx.

Bing Spatial Data Services

Включает в себя Geocode DataFlow API, который устанавливает URL, который можно использовать для геокодирования списков пространственных данных.

Более детально на странице http://msdn.microsoft.com/en-us/library/ff701734.aspx.

Bing MapPoint Web Service

Позволяет интегрировать карты, рассчитывать маршруты, расстояния между объектами и т.д.

Более детально на странице http://msdn.microsoft.com/en-us/library/ff706683.aspx.

Bing Map App SDK

Кроме самих карт разработчики имеют возможность разрабатывать приложения, используя Bing Maps App SDK.

Для этого необходимо зарегистрироваться в Microsoft Connect (это можно сделать по адресу: http://connect.microsoft.com/bingmapapps).

После этого необходимо скачать Bing Maps App SDK. Страница для скачивания выглядит следующим образом (вам необходимо принять лицензия перед использованием этого продукта):

Для установки Bing Maps App SDK необходимо, чтобы на машине были установлены:

После установки вы сможете разрабатывать приложения на Silverlight (также можете использовать KML потоки). После того, ка приложение разработано, его необходимо опубликовать в Bing Maps Account Center, после чего на вкладке "View my maps" появится информация о ваших приложениях и их статусах.

Bing Map App Contest

Также хочется сказать несколько слов о соревновании приложений Bing Map App Contest, по итогам которого победитель получит $1000 и кусочек мировой славы :)

Страница конкурса: http://www.microsoft.com/maps/contest.aspx

Свои приложения можно присылать до 25 июля, с официальными правилами можно ознакомиться на странице http://www.microsoft.com/maps/assets/docs/contest_terms.aspx.

Думаю, это может стать хорошей стартовой точкой для изучения Bing Maps App.

AviMap - HD Video World Cup Football Stadium Tour using Bing Maps, Silverlight and Azure Technology

Сайт: http://www.theworldcupmap.com/

Реальное применение Bing Maps для создания интерактивных приложений - в данном случае это приложение-тур по стадионам чемпионата мира по футболу в ЮАР (кликабельно):

Другие ссылки

  1. Bing Maps Articles
  2. Bing Maps Geographic Coverage
  3. MapPoint Web Service Technical Articles
  4. See the Bing Maps Platform in Action
  5. Bing Maps SDKs
  6. Bing Maps Developer Datasheet
  7. Developer Articles
  8. Bing Maps on Channel 9
  9. Developer Forum
  10. Licensing
  11. Bing Maps
  12. Bing Maps Blog
  13. Bing Maps on MSDN
  14. Microsoft Photosynth
  15. Other Mapping Products

Компании из статьи


Яндекс Украина


Сайт:
http://yandex.ru/

Яндекс Украина У Яндекса в Украине три офиса — головной в Одессе, где сосредоточен управленческий аппарат и отдел продаж, и два офиса разработки — киевский, занимающийся разработкой и управлением украинскими проекта...

Microsoft Украина


Сайт:
http://www.microsoft.com/ukr/ua/

Microsoft Украина Украинское подразделение компании Microsoft.

Ищите нас в интернетах!

Комментарии

Свежие вакансии