Apakah Bing Maps 7 mendukung KML?

9

Saya tidak beruntung menemukan contoh. Saya telah menemukan kode seperti itu di bawah ini tetapi ini untuk versi sebelumnya.

shapeLayer = new VEShapeLayer();
shapeSpec = new VEShapeSourceSpecification(VEDataType.ImportXML, layer.url, shapeLayer);
veMap.ImportShapeLayerData(shapeSpec);
ca0v
sumber
Saya tidak berpikir contoh ini mewakili kml. Ini terlihat seperti esri shapefile di mata saya yang tidak terlatih. Yang mengatakan saya yakin Anda bisa melakukan mashup antara bing, dan GE tetapi membaca lisensi untuk pembatasan.
Brad Nesom
Tidak ada hubungannya dengan ESRI shapefile, Brad. Dari doco API - msdn.microsoft.com/en-us/library/bb412413.aspx VEShapeLayer Class Berisi informasi tentang lapisan bentuk. Lapisan bentuk adalah mekanisme untuk membuat dan mengelola kelompok bentuk yang sewenang-wenang (pushpine, polyline, dan polygon). Lapisan bentuk peta dapat dibuat dari file XML GeoRSS, petak peta khusus, atau dari koleksi Bing Maps ( maps.live.com ) publik .
user2856

Jawaban:

2

Seperti disebutkan di atas, GeoRSS dan KML tidak didukung. Namun, seseorang telah menulis penerjemah GeoRSS untuk Bing Maps v7. Dan karena file KML dan file GeoRSS keduanya XML, sehingga Anda dapat dengan mudah mengkonversi keduanya menggunakan XSL. Beberapa perburuan menunjukkan bahwa banyak orang telah membicarakannya, tetapi saya tidak dapat menemukan file XSL yang sebenarnya yang melakukannya. Namun, saya menemukan yang sebaliknya, mengubah GeoRSS menjadi KML , yang seharusnya memberi Anda ide yang baik untuk memulai dari mana jika Anda menulis sendiri.

Jika Anda hanya perlu melakukan ini satu kali, Anda dapat menggunakan dua situs web berikut untuk mengonversi KML ke GeoRSS melalui CSV:

  1. Sebuah KML ke CSV converter menggunakan XSL.
  2. Sebuah CSV ke GeoRSS webapp

Dan opsi terakhir adalah menulis penerjemah KML Anda sendiri, dengan cara yang sama seseorang menulis penerjemah GeoRSS mereka sendiri , per @Derek.

Patrick
sumber
Saya bingung ... bagaimana GeoRSS didukung dengan bing maps API? Cukup sulit untuk mengatakan menulis kode parsing Anda sendiri dianggap sebagai "didukung".
Derek Swingley
Maaf, itu tidak didukung, tetapi pos yang saya tautkan memiliki juru bahasa untuk menggunakan GeoRSS di Bing v7 dengan jQuery. Saya akan menulis ulang agar lebih jelas.
Patrick
4

Sepertinya jawabannya tidak. Saya mengatakan ini berdasarkan pada melihat dokumen SDK mereka dan utas ini: Mencari Contoh KML atau GeoRSS di Bing Maps Ajax Control v7 .

Jika dukungan KML sangat penting, Anda dapat menggunakan API ArcGIS Esri untuk JavaScript karena memiliki dukungan untuk lapisan KML yang dapat diakses publik . Pengungkapan penuh: Saya bekerja di Esri di tim JavaScript API.

Derek Swingley
sumber
Penasaran: Saya menemukan lisensi ESRI untuk JSAPI sulit dibaca. Adakah yang bisa menggunakan jsapi untuk menerbitkan peta? Sebagai contoh, bisakah saya menggunakan JSAPI untuk menampilkan peta bing dan tidak melanggar lisensi ESRI? Sama untuk Google, OSM, ESRI Public Tiles? Atau apakah perlu bagi pengguna untuk menjadi pengguna Server ArcGIS? OL terbuka tetapi apakah JSAPI?
ca0v
1
@ user2023 Kami telah mendiskusikan lisensi JSAPI secara internal dan setuju bahwa ceritanya tidak jelas. Kami sedang berupaya meningkatkan ini dan berencana memperbarui beberapa halaman untuk mencerminkan kisah lisensi yang lebih sederhana, lebih mudah dipahami. Sampai kita mendapatkan berbagai halaman yang diperbarui, ceritanya adalah ini: gunakan JSAPI untuk situs / aplikasi internal, eksternal, non-komersial, dan gratis. Anda tidak perlu membayar kecuali Anda mulai menyimpan sejumlah besar data di arcgis.com dan menggunakan layanan (geometri, pencari lokasi / geocoding dan perutean) di arcgis.com.
Derek Swingley
2

Bing Maps 7.0 tidak termasuk konverter KML. Tetapi karena menggunakan objek JavaScript untuk menampilkan data pada peta (lihat Bing API ), Anda dapat secara manual mem-parsing kml dan mengonversinya ke objek masing-masing.

Dalam contoh kode ini , saya menggunakan JavaScript untuk mengonversi data poligon KML ke objek Microsoft.Maps.Polygon baru. Saya kemudian akan menggunakan kode di bawah ini untuk menambahkan poligon ke peta Bing saya.

// 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);
Ryan Selesai
sumber
Apakah KML Anda harus dalam bentuk tertentu? Atau apakah ini akan berfungsi pada file KML?
J86
0

Seperti yang sebagian besar posting lain sebutkan, sepertinya KML tidak didukung langsung di Bing Maps Ajax control v7. Namun, saya pikir perlu disebutkan bahwa itu seharusnya didukung dalam peta GUI yang normal. Dalam posting blog Bing berikut, ini menjelaskan bagaimana seseorang dapat mengimpor KML ke Bing Maps "Tempatku":

Bukan pertanyaan yang dicari, tetapi berpotensi bermanfaat untuk situasi seperti itu.

Scott H
sumber