Existe alguma biblioteca JS por aí que renderize mapas planos e normais (como o Leaflet) em um mapa em perspectiva como este, na Web:
Além disso, alguém viu algo que pudesse transformar dados do CartoDB em representação 3D, assim?
Existe alguma biblioteca JS por aí que renderize mapas planos e normais (como o Leaflet) em um mapa em perspectiva como este, na Web:
Além disso, alguém viu algo que pudesse transformar dados do CartoDB em representação 3D, assim?
Respostas:
Talvez você possa usar Osmbuildings . É uma biblioteca JavaScript para visualizar o OpenStreetMaps (ou GeoJSON personalizado) criando geometria em uma perspectiva 3D.
Ele usa os dados do OpenStreetMaps diretamente. Basta adicionar o método 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)
Ou você pode carregar seu próprio GeoJSON. Apenas mude o método loadData () para setData (geojson):
var osmb = new OSMBuildings(map).setData(geoJSON);
Seus dados precisam ter uma propriedade height e você pode alterar a cor da parede e do telhado dinamicamente:
osmb.setStyle({
wallColor:'rgba(100, 100, 250, 0.701961)',
roofColor:'rgb(220, 220, 50)',
shadows:true
});
E até mude a perspectiva da sombra definindo o dia:
osmb.setDate(new Date(2014, 3, 24, 13, 0));
setData
método, mas set
funciona! É tjus torna-se:var osmb = new OSMBuildings(map).setData(geoJSON);
Este é um dos principais casos de uso do ViziCities (cidades 3D no navegador desenvolvido pelo OpenStreetMap), embora as camadas de dados ainda não estejam funcionando no momento. Talvez algo a considerar para o futuro: https://github.com/robhawkes/vizicities
Disclaimer: Eu sou o desenvolvedor do ViziCities
Você pode usar o OSM2world para transmitir dados 2D do OpenStreetMap (map.osm) para objetos 3D (map.obj) e, em seguida, usar outro conversor ( convert_obj_three.py ) para convertê-lo em um modelo JSON threejs (map.js) e, em seguida, usar em uma cena de três garotos.
Você pode ver como aqui:
O mais próximo que vi é o trabalho de Mike Bostock .
Ele tem um mapa muito legal que tem uma espécie de projeção oblíqua .
Mas não há nada que facilite. D3 faz minha cabeça em relação à criação de projeções. Você pode fazer coisas incríveis, se trabalhar nisso.
http://osm2world.org/ funciona sem o WebGL, mas usa Java em vez de js.
Projetado para a saída de dados de edifícios Openstreetmap, deve ser adotável para outros dados 3D também.
O resultado é um mapa escorregadio semelhante ao folheto: http://maps.osm2world.org/
Bem, com o CartoDB, você pode fazer algo assim http://andrewxhill.com/cartodb-examples/scroll-story/pluto/index.html#4
Você precisa usar este parâmetro CartoCSS: {building-height: 512; }
Mais informações aqui: https://github.com/CartoDB/cartodb-pluto