Чи підтримує Bing Maps 7 KML?


9

Мені не пощастило знайти приклади. Нижче я знайшов такий код, але це для більш ранніх версій.

shapeLayer = new VEShapeLayer();
shapeSpec = new VEShapeSourceSpecification(VEDataType.ImportXML, layer.url, shapeLayer);
veMap.ImportShapeLayerData(shapeSpec);

Я не думаю, що цей приклад представляє кмл. Це схоже на форму форму esri для мого нетренованого ока. Це сказав, що я впевнений, що ви можете зробити мешанку між Bing та GE, але прочитайте ліцензію на обмеження.
Бред Несом

Нічого спільного з ESRI shapefiles Бредом. Від API doco - msdn.microsoft.com/en-us/library/bb412413.aspx Клас VEShapeLayer Містить інформацію про шари форми. Шари форми - це механізм для створення та управління довільними групами фігур (точилки, полілінії та багатокутники). Шари форми карт можна створювати з XML-файлів GeoRSS, спеціальних плиток карт або з будь-якої загальнодоступної колекції Bing Maps ( maps.live.com ).
користувач2856

Відповіді:


2

Як було сказано вище, GeoRSS та KML не підтримуються. Однак хтось написав перекладача GeoRSS для Bing Maps v7. А оскільки KML-файли та файли GeoRSS є обома XML, то ви можете легко конвертувати між цими двома за допомогою XSL. Деякі полювання показують, що багато людей говорили про це, але я не можу знайти жодного фактичного файлу XSL, який би це робив. Однак я виявив, що зробив навпаки, перетворивши GeoRSS в KML , що повинно дати вам гарне уявлення про те, з чого почати, якщо ви написали своє.

Якщо вам потрібно зробити це лише один раз, ви можете скористатись наступними двома веб-сайтами для перетворення KML в GeoRSS через CSV:

  1. KML в CSV конвертер з допомогою XSL.
  2. Веб- файл CSV для GeoRSS

І остаточний варіант - просто написати власний інтерпретатор KML, таким же чином, як хтось написав свого власного перекладача GeoRSS , на @Derek.


Я розгублений ... як підтримується GeoRSS з API бінгових карт? Досить складно сказати, що написання власного коду розбору вважається "підтримуваним".
Дерек Свінглі

На жаль, він не підтримується, але в публікації, до якої я посилався , є інтерпретатор для використання GeoRSS у Bing v7 з jQuery. Я перепишу, щоб бути більш зрозумілим.
Патрік

4

Схоже, відповідь - ні. Я кажу про це на основі перегляду їхніх документів SDK і цієї теми: Шукаю приклад KML або GeoRSS у Bing Maps Ajax Control v7 .

Якщо підтримка KML є вирішальною, ви можете використовувати ArcGIS API Esri для JavaScript, оскільки він підтримує загальнодоступні шари KML . Повне розкриття: Я працюю в Esri в команді JavaScript API.


Цікаво: мені здається, що ліцензія ESRI на JSAPI важко читати. Чи може хтось використовувати jsapi для публікації карт? Наприклад, чи можу я використовувати JSAPI для відображення бінг-карт і не порушувати жодних ліцензій ESRI? Те саме для Google, OSM, ESRI Public Tiles? Або це необхідно, щоб користувач був користувачем сервера ArcGIS? OL відкритий, але JSAPI?
ca0v

1
@ user2023 Ми внутрішньо обговорювали ліцензування JSAPI і погоджуємось, що історія не зрозуміла. Ми працюємо над покращенням цього і плануємо оновити кілька сторінок, щоб відобразити більш просту історію ліцензування, яку легше зрозуміти. Поки ми не оновлюємо різні сторінки, історія така: користуйтеся JSAPI для внутрішніх, зовнішніх, некомерційних та комерційних сайтів / додатків безкоштовно. Вам не потрібно платити, якщо ви не почнете зберігати велику кількість даних на arcgis.com та користуватися послугами (геометрія, локатор / геокодування та маршрутизація) на arcgis.com.
Дерек Свінглі

2

Bing Maps 7.0 не включає конвертер KML. Але оскільки він використовує об’єкти JavaScript для відображення даних на карті (див. API Bing ), ви можете вручну проаналізувати kml та перетворити їх у відповідні об'єкти.

У цьому прикладі коду я використовую JavaScript для перетворення даних полігону KML в нові об’єкти Microsoft.Maps.Polygon. Тоді я б застосував код нижче, щоб додати полігони до моєї карти Bing.

// Initialize the Map.
var map = new Microsoft.Maps.Map(document.getElementById("mapDiv"), {credentials:"Bing Maps Key"});

// Insert your own code to get your KML string here.

// Parse the kml into Microsoft.Maps.Polygon objects and add them to the map.
var polygons = bingKmlParser.parsePolygons(kmlString);
map.entities.push(polygons);

Чи повинен ваш KML бути у певній формі? Чи це може працювати на будь-якому файлі KML?
J86

1

Використовуйте Openlayers !! Ви можете завантажити файли KML та встановити Bing як базовий шар карти. А найкраще - це відкритий, повністю стабільний та дуже активний проект.

http://dev.openlayers.org/sandbox/rdewit/kml/examples/kml_wmsc_ows5.html

http://openlayers.org/dev/examples/bing.html


Насправді не відповідь на проблему, але хороший спосіб вирішення.
ca0v

0

Як згадується в більшості інших публікацій, схоже, що KML безпосередньо підтримується в Bing Maps Ajax control v7. Однак я подумав, що варто згадати, що він нібито підтримується в звичайному графічному інтерфейсі карт. У наступному дописі в блозі Bing описано, як можна імпортувати KML в Карти Bing "Мої місця":

Не точно те, що питання шукало, але потенційно корисне для такої ситуації.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.