Comments (2)
Hi @gizm0bill, thanks for interest in our project.
TLDR, some parts of what you seek is possible but far from easy.
Problem 1.
Due to performance reasons, by default we don't keep any information about identity of map features, so what we see on map is just 3d geometry divided into tiles with no knowledge which polygon belongs to which "building" in your case.
To retrieve this information, you must at least tell OmvDataSource
to gatherFeatureAttributes
by setting it to true
in constructor.
Note - this greatly increases memory usage.
See object picking examples: https://www.harp.gl/docs/master/examples/#object-picking.html
Problem 2
Due to already mentioned tiling, one "real" building may end up being split to several tiles and thus rendered by several distinct THREE.Objects
.
So, we need to correlate "features" from many tiles and this is only available in some data providers.
Not all datasources provide feature id
for all features.
Namely
- object picking example using
https://xyz.api.here.com/tiles/herebase.02
shows that you don't have disctinct$id
for each feature in this case - XYZ OSM datasource
https://xyz.api.here.com/tiles/osmbase/256/all
- used in other example provides proper feature$id
s AFAIR.
Problem 3
This is going hardcore as most of API is not documented as good as we would like to
Having gatherFeatureAttributes
set, you can traverse scene and find all objects with userData.feature
containing TileFeatureData
objects to search for buffer geometry segments that are responsible for rendering feature by inspecting TileFeatureData.objInfos
and correlating it with TileFeatureData.starts
which tell where in particular BufferGeometry
given feature starts.
Knowing ranges, you can use multi material/groups feature of THREE.Mesh
to render selected ranges with other material - i would start with different color.
Problem 4
I'm not certain if we generate usable texture coordinates buffer.
Summarizing this part of this can be done, but require very intimate knowledge of engine.
Unfortunately we don't have ready any ready example to be shown at hand.
Hope that it helps, we're open to questions.
from harp.gl.
Much appreciated!
from harp.gl.
Related Issues (20)
- Give 3D buildings that have 0m height data a random height between 2 values HOT 2
- Load building height data from different sources and combining with Here Maps (ex. Open Street Maps - OSM) HOT 2
- Allow CirclesTechnique points size to be specified in metres and pixels HOT 1
- MapView: Failed to connect to geojson: Error during worker initialization HOT 7
- Getting Started Guide is broken HOT 9
- Some countries has no shaped data at all HOT 2
- Maintaining "North up" in Spherical Map HOT 3
- big polygon broken in some level? HOT 2
- Optimisation possible for rendering. Only evaluate expressions for items which are in viewport. HOT 1
- Can I use anotherdata server? HOT 2
- Drawing exception problem HOT 4
- [feature] time-based tools HOT 3
- Equirectangular Tiles supported? HOT 3
- reactjs examples that work with current version of Harp HOT 8
- GeoJson is not being extruded. HOT 2
- Heatmap example is blank HOT 5
- Uncaught ReferenceError: THREE is not defined HOT 8
- Help with custom shader water layer HOT 4
- Docs and online examples is 404 HOT 3
- Do existing harp.gl users need to make any changes to match the new change? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from harp.gl.