มีห้องสมุด JS ใด ๆ หรือไม่ที่จะแสดงแผนที่ปกติ (เช่นแผ่นพับ) ลงในแผนที่มุมมองเช่นนี้บนเว็บ:
นอกจากนี้ทุกคนเห็นอะไรก็ตามที่สามารถเปลี่ยนข้อมูล CartoDB เป็นการนำเสนอแบบ 3 มิติเช่นนี้
มีห้องสมุด JS ใด ๆ หรือไม่ที่จะแสดงแผนที่ปกติ (เช่นแผ่นพับ) ลงในแผนที่มุมมองเช่นนี้บนเว็บ:
นอกจากนี้ทุกคนเห็นอะไรก็ตามที่สามารถเปลี่ยนข้อมูล CartoDB เป็นการนำเสนอแบบ 3 มิติเช่นนี้
คำตอบ:
บางทีคุณอาจจะใช้Osmbuildings มันเป็นห้องสมุด JavaScript สำหรับการแสดงภาพ OpenStreetMaps (หรือ GeoJSON ที่กำหนดเอง) การสร้างรูปทรงเรขาคณิตในมุมมอง 3 มิติ
ใช้ข้อมูล OpenStreetMaps โดยตรง เพียงเพิ่มเมธอด loadData ():
var map = new L.Map('map').setView([52.50440, 13.33522], 17);
var osmb = new OSMBuildings(map).loadData();
L.control.layers({}, { Buildings:osmb }).addTo(map); // add to layer switcher (optional)
หรือคุณสามารถโหลด GeoJSON ของคุณเอง เพียงเปลี่ยนเมธอด loadData () เป็น setData (geojson):
var osmb = new OSMBuildings(map).setData(geoJSON);
ข้อมูลของคุณต้องมีคุณสมบัติความสูงและคุณสามารถเปลี่ยนสีผนังและหลังคาแบบไดนามิก:
osmb.setStyle({
wallColor:'rgba(100, 100, 250, 0.701961)',
roofColor:'rgb(220, 220, 50)',
shadows:true
});
และแม้แต่เปลี่ยนมุมมองเงาด้วยการตั้งค่าเวลากลางวัน:
osmb.setDate(new Date(2014, 3, 24, 13, 0));
setData
วิธีการ แต่ใช้set
งานได้! มันจะกลายเป็น:var osmb = new OSMBuildings(map).setData(geoJSON);
นี่เป็นหนึ่งในกรณีการใช้งานหลักสำหรับ ViziCities (เมืองสามมิติในเบราว์เซอร์ที่ขับเคลื่อนโดย OpenStreetMap) แม้ว่าชั้นข้อมูลจะยังไม่ทำงาน บางทีสิ่งที่ต้องพิจารณาสำหรับอนาคต: https://github.com/robhawkes/vizicities
ข้อจำกัดความรับผิดชอบ: ฉันเป็นผู้พัฒนา ViziCities
คุณสามารถใช้ OSM2world เพื่อส่งผ่านข้อมูล 2D จาก OpenStreetMap (map.osm) ไปยังวัตถุ 3 มิติ (map.obj) จากนั้นใช้ตัวแปลงอื่น ( convert_obj_three.py ) เพื่อแปลงเป็นรูปแบบ JSON threejs (map.js) จากนั้นใช้ มันอยู่ในฉาก Threejs
คุณสามารถดูวิธีที่นี่:
สิ่งที่ฉันได้เห็นมากที่สุดคืองานของไมค์บอสต็อก
เขามีแผนที่เจ๋งจริงๆซึ่งมีชนิดของการฉายเฉียง
แต่ไม่มีอะไรที่ทำให้ง่าย D3 ทำหัวของฉันเกี่ยวกับการตั้งค่าการฉายภาพ คุณสามารถทำสิ่งที่น่าอัศจรรย์ถ้าคุณทำงานที่มัน
http://osm2world.org/ทำงานโดยไม่มี WebGL แต่ใช้ Java แทน js
ออกแบบมาสำหรับการส่งออกข้อมูลอาคาร Openstreetmap ควรใช้กับข้อมูล 3D อื่น ๆ ได้เช่นกัน
ผลลัพธ์เป็นแผนที่ลื่นคล้ายกับแผ่นพับ: http://maps.osm2world.org/
ด้วย CartoDB คุณสามารถทำสิ่งนี้http://andrewxhill.com/cartodb-examples/scroll-story/pluto/index.html#4
คุณต้องใช้พารามิเตอร์ CartoCSS นี้: {building-height: 512; }
ข้อมูลเพิ่มเติมที่นี่: https://github.com/CartoDB/cartodb-pluto