Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

3D extrusion #6745

Closed
1ec5 opened this issue Oct 19, 2016 · 11 comments
Closed

3D extrusion #6745

1ec5 opened this issue Oct 19, 2016 · 11 comments
Assignees
Labels
Core The cross-platform C++ core, aka mbgl feature GL JS parity For feature parity with Mapbox GL JS Google Maps parity For feature parity with the Google Maps SDK for Android or iOS MapKit parity For feature parity with MapKit on iOS or macOS Tangram parity For feature parity with Tangram ES
Milestone

Comments

@1ec5
Copy link
Contributor

1ec5 commented Oct 19, 2016

This issue tracks porting mapbox/mapbox-gl-js#3223, which implements the fill-extrude-height and fill-extrude-base properties and light root property added to the style specification in mapbox/mapbox-gl-style-spec#495.

This issue tracks porting mapbox/mapbox-gl-js#3487, which implements the fill-extrusion layer type added to the style specification in mapbox/mapbox-gl-style-spec#554, as well as the light root property added to the style specification in mapbox/mapbox-gl-style-spec#495.

The SDKs will also need to expose APIs for these properties. On iOS and macOS, the light root property will likely look like separate lightAnchor, lightPosition, etc. properties on MGLStyle.

Since most use cases for 3D extrusion, particularly 3D buildings (but not Unix), require the heights to vary feature by feature, this issue essentially depends on data-driven styling: #4860. Note that the scope of this issue is limited to parity with GL JS. mapbox/DEPRECATED-mapbox-gl#17, mapbox/DEPRECATED-mapbox-gl#18, and mapbox/mapbox-gl-js#1489 track some future directions for this technology.

/cc @jfirebaugh @lbud

@1ec5 1ec5 added feature GL JS parity For feature parity with Mapbox GL JS Core The cross-platform C++ core, aka mbgl MapKit parity For feature parity with MapKit on iOS or macOS Google Maps parity For feature parity with the Google Maps SDK for Android or iOS labels Oct 19, 2016
@lbud
Copy link
Contributor

lbud commented Oct 19, 2016

🙏 thanks for opening this @1ec5.

I wrote a branch earlier this summer (based on the original spec proposal, a separate extrusion type) to make sure I could do this, and got to the point of rendering non-data-driven extrusions just fine. It's a very stale branch, but once we have the DDS infrastructure in the works I'm excited to revive it 👹

@matsbov
Copy link

matsbov commented Nov 29, 2016

Hi! Will this include 3d-support for node-mapbox-gl-native? I've tried using it for rendering static images from a vector-map and it does not include the fill-extrusion layers.

@1ec5
Copy link
Contributor Author

1ec5 commented Nov 29, 2016

Yes. This issue tracks implementing fill-extrusion layers, which replaced the fill-extrude-height and fill-extrude-base properties in mapbox/mapbox-gl-style-spec#554. (I’ve updated the original issue description.) fill-extrusion support will be implemented primarily in the cross-platform mbgl library. All the frontends like node-mapbox-gl-native will get that feature “for free” (other than any runtime styling–related updates that might be needed on some platforms).

@nitrag
Copy link
Contributor

nitrag commented Dec 9, 2016

Terrain visualization is more important to me. Hoping this will get us there. Thanks @lbud!

Maybe MapBox Studio editor will have more control with terrain visualization in the future so we can get a map that looks like http://maps.stamen.com/terrain/#12/37.6439/-122.4346 instead of just a flat/shaded map?

@ghost
Copy link

ghost commented Jan 19, 2017

Hi, has anyone found a way to raise polygons with the fill-extrusion layer in iOS? We are finding that 3D buildings created in MapBox studio are flat when the map is used with the iOS SDK. Has anyone got a way around this? Cheers.

@1ec5
Copy link
Contributor Author

1ec5 commented Jan 19, 2017

Hi @jdr6, that's what this issue is about. Please see the original description up top for information on the scope of this issue and its prerequisites.

@1ec5
Copy link
Contributor Author

1ec5 commented Jan 19, 2017

Note that Mapbox Studio provides an option for hiding options that are incompatible with certain SDKs. You may want to consider enabling that option if you need to ensure compatibility with the iOS SDK.

@1ec5
Copy link
Contributor Author

1ec5 commented Mar 21, 2017

It's a very stale branch, but once we have the DDS infrastructure in the works I'm excited to revive it 👹

The functionality needed for parity with GL JS is being developed in #8431, now that data-driven styling is implemented.

@1ec5 1ec5 added this to the ios-v3.6.0 milestone Mar 21, 2017
@1ec5 1ec5 added the Tangram parity For feature parity with Tangram ES label Apr 13, 2017
@jfirebaugh
Copy link
Contributor

Support for fill extrusions was added in #8431 and will be in the iOS 3.6.0 and Android 5.1.0 releases.

@1ec5
Copy link
Contributor Author

1ec5 commented Apr 27, 2017

We’re tracking runtime styling support for style-wide light settings in #8840 (for iOS and macOS) and #8841 (for Android).

@brunoabinader, I’m not sure where these options would live, so please feel free to open a corresponding ticket for Qt.

@brunoabinader
Copy link
Member

brunoabinader commented May 1, 2017

@tmpsantos is providing extrusion support for Qt in #8849

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Core The cross-platform C++ core, aka mbgl feature GL JS parity For feature parity with Mapbox GL JS Google Maps parity For feature parity with the Google Maps SDK for Android or iOS MapKit parity For feature parity with MapKit on iOS or macOS Tangram parity For feature parity with Tangram ES
Projects
None yet
Development

No branches or pull requests

6 participants