Extending ASP.NET: используем Bing Maps APIs в своих веб-приложениях
Все мы пользуемся картами от 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: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.
Позволяют интегрировать карты и изображения, искать направления движения, расстояния в ваших настольных и веб-приложениях и бизнес-процессах. Можно использовать такие веб-сервисы:
- GeocodeService: http://dev.virtualearth.net/webservices/v1/geocodeservice/geocodeservice.svc?wsdl
- SearchService: http://dev.virtualearth.net/webservices/v1/searchservice/searchservice.svc?wsdl
- ImageryService: http://dev.virtualearth.net/webservices/v1/imageryservice/imageryservice.svc?wsdl
- RouteService: http://dev.virtualearth.net/webservices/v1/routeservice/routeservice.svc?wsdl
Дальше в приложение добавляем пространства имен:
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 для создания интерактивных приложений - в данном случае это приложение-тур по стадионам чемпионата мира по футболу в ЮАР (кликабельно):
Другие ссылки
- Bing Maps Articles
- Bing Maps Geographic Coverage
- MapPoint Web Service Technical Articles
- See the Bing Maps Platform in Action
- Bing Maps SDKs
- Bing Maps Developer Datasheet
- Developer Articles
- Bing Maps on Channel 9
- Developer Forum
- Licensing
- Bing Maps
- Bing Maps Blog
- Bing Maps on MSDN
- Microsoft Photosynth
- Other Mapping Products
Компании из статьи
Яндекс Украина
|
У Яндекса в Украине три офиса — головной в Одессе, где сосредоточен управленческий аппарат и отдел продаж, и два офиса разработки — киевский, занимающийся разработкой и управлением украинскими проекта... |
Microsoft Украина | Украинское подразделение компании Microsoft. |