Bing Maps 7, KML'yi destekliyor mu?


9

Örnek bulmakta şansım yok. Aşağıdaki gibi kod buldum ama bu önceki sürümleri içindir.

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

Bu örneğin kml'yi temsil ettiğini düşünmüyorum. Bu eğitimsiz gözüme esri şekil dosyası gibi görünüyor. Bu, bing ile GE arasında bir karışım yapabileceğinizden emin olabilirsiniz, ancak kısıtlamalar için lisansı okuyabilirsiniz.
Brad Nesom

ESRI şekil dosyaları Brad ile ilgisi yoktur. API'dan doco - msdn.microsoft.com/tr-tr/library/bb412413.aspx VEShapeLayer Sınıfı Şekil katmanları hakkında bilgi içerir. Şekil katmanları, rastgele şekil grupları (raptiyeler, çoklu çizgiler ve çokgenler) oluşturmak ve yönetmek için bir mekanizmadır. Harita şekli katmanları GeoRSS XML dosyalarından, özel harita döşemelerinden veya herhangi bir genel Bing Haritalar ( maps.live.com ) koleksiyonundan oluşturulabilir.
user2856

Yanıtlar:


2

Yukarıda belirtildiği gibi, GeoRSS ve KML desteklenmez. Ancak, birisi Bing Maps v7 için bir GeoRSS yorumlayıcısı yazmıştır . KML ve GeoRSS dosyalarının her ikisi de XML olduğundan, XSL kullanarak ikisi arasında kolayca dönüştürebilirsiniz. Bazı avcılık, birçok insanın bundan bahsettiğini gösterir, ancak bunu yapan gerçek bir XSL dosyası bulamıyorum. Bununla birlikte, GeoRSS'yi KML'ye dönüştüren bir tersini buldum , bu da kendiniz yazdıysanız nereden başlayacağınız konusunda iyi bir fikir vermelidir.

Bunu yalnızca bir kez yapmanız gerekiyorsa, KML'yi CSV üzerinden GeoRSS'ye dönüştürmek için aşağıdaki iki web sitesini kullanabilirsiniz:

  1. Bir CSV dönüştürücü KML XSL kullanarak.
  2. GeoRSS web uygulamasına bir CSV

Ve son seçenek, kendi KML yorumcunuzu yazmaktır, aynı şekilde birileri kendi GeoRSS yorumlayıcılarını yazdı , @ @ derek.


Kafam karıştı ... GeoRSS bing maps API ile nasıl destekleniyor? Kendi ayrıştırma kodunuzu yazmanın "desteklenen" olduğunu söylemek oldukça zor.
Derek Swingley

Maalesef desteklenmiyor, ancak bağlandığım gönderinin Bing v7'de jQuery ile GeoRSS kullanmak için bir tercümanı var. Daha net olmak için tekrar yazacağım.
Patrick

4

Cevap hayır gibi görünüyor. Ben onların SDK belgelerine ve bu iş parçacığına bakarak söylüyorum: Bing Maps Ajax Control v7 KML veya GeoRSS Örneği .

KML desteği çok önemliyse , herkesin erişebildiği KML katmanlarını desteklediğinden Esri'nin JavaScript için ArcGIS API'sını kullanabilirsiniz . Tam açıklama: Esri'de JavaScript API ekibinde çalışıyorum.


Meraklı: JSAPI için ESRI lisansını okumayı zor buluyorum. Herkes harita yayınlamak için jsapi kullanabilir miyim? Örneğin, bing haritalarını görüntülemek ve herhangi bir ESRI lisansını ihlal etmemek için JSAPI kullanabilir miyim? Google, OSM, ESRI Genel Fayanslar için aynı mı? Yoksa kullanıcının ArcGIS Server kullanıcısı olması gerekli midir? OL açık ama JSAPI?
ca0v

1
@ user2023 JSAPI lisanslamasını dahili olarak tartışıyoruz ve hikayenin net olmadığı konusunda hemfikiriz. Bunu geliştirmeye çalışıyoruz ve daha basit ve anlaşılması kolay bir lisanslama hikayesini yansıtacak şekilde birkaç sayfayı güncellemeyi planlıyoruz. Çeşitli sayfaları güncelleyene kadar, hikaye şudur: dahili, harici, ticari olmayan ve ticari siteler / uygulamalar için JSAPI'yi ücretsiz kullanın. Arcgis.com'da büyük miktarda veri saklamaya ve arcgis.com'daki hizmetleri (geometri, konum belirleyici / coğrafi kodlama ve yönlendirme) kullanmaya başlamadığınız sürece ödeme yapmanız gerekmez.
Derek Swingley

2

Bing Maps 7.0, bir KML dönüştürücü içermez. Ancak, verileri harita üzerinde görüntülemek için JavaScript nesneleri kullandığından (bkz. Bing API'sı ), kml'yi manuel olarak ayrıştırabilir ve ilgili nesnelere dönüştürebilirsiniz.

Gelen bu kod örneği , yeni Microsoft.Maps.Polygon nesnelere KML poligon verileri dönüştürmek için JavaScript kullanır. Daha sonra Bing haritama çokgenler eklemek için aşağıdaki kodu kullanırdım.

// 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'nizin belirli bir şekilde olması gerekiyor mu? Yoksa bu herhangi bir KML dosyasında çalışır mı?
J86


0

Diğer gönderilerin çoğunun belirttiği gibi, KML'nin Bing Maps Ajax kontrol v7'de doğrudan desteklendiği görülmüyor. Ancak, normal haritalar GUI'sinde desteklendiği söylenmeye değer olduğunu düşündüm. Aşağıdaki Bing blog gönderisinde, bir KML'yi Bing Haritalar "Yerlerim" e nasıl aktarabileceğiniz açıklanmaktadır:

Sorunun tam olarak ne aradığını değil, bu tür bir durum için potansiyel olarak yararlıdır.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.