GoogleMaps support#7604
Conversation
|
@pmconne Part of this PR, I need to have an async version of My only solution right now, would consist in created an Any thoughts? |
The |
|
@pmconne @aruniverse @matmarchand Looking for feedback on the actual implementation state:
|
|
@pmconne An async version of |
The approach you've taken (deprecate it, add new The simplest solution would be to change All but one of your class TileTreeReference {
// Everyone who provides attributions today overrides this method.
/** @deprecated in 5.0. Use [[addAttributions]] instead. */
public addLogoCards(_cards: HTMLTableELement, _vp: ScreenViewport): void { }
// People who need async attributions, or those reacting to deprecation warnings, would override this method instead of addLogoCards.
protected addAttributions(cards: HTMLTableElement, vp: ScreenViewport): Promise<void> {
return Promise.resolve(this.addLogoCards(cards, vp);
}
} |
Thanks for the suggestion, I totally agree too much code duplication in previous approach. |
I guess the user interface is going to have to expose the provider-specific config options (property bag)? Should the provider expose a schema describing the available properties and their types? I note you've basically reintroduced the equivalent of |
Currently it's the job of the It doesn't offer though, a set of abstract types that could be shared among future providers interested in using properties bag. |
|
@pmconne There are function inside |
Guidelines for internal APIs. Is this what you mean? |
Not quite, |
Only if you export them from the package. |
|
@aruniverse @eringram One of you need to approve I think |
aruniverse
left a comment
There was a problem hiding this comment.
newly added beta apis exposed to users seem fine to me in map-layers-format
i think a lot is left to be desired here for formatting of the code but trying to not be picky, and hope we come back to it later
Any example of what you are referring to ? |
Co-authored-by: pmconne <22944042+pmconne@users.noreply.github.com> Co-authored-by: Arun George <11051042+aruniverse@users.noreply.github.com>
|
@Mergifyio backport release/4.11.x |
✅ Backports have been createdDetails
|
Co-authored-by: pmconne <22944042+pmconne@users.noreply.github.com> Co-authored-by: Arun George <11051042+aruniverse@users.noreply.github.com> (cherry picked from commit ce418d1) # Conflicts: # common/config/rush/pnpm-lock.yaml # core/frontend/src/Viewport.ts # core/frontend/src/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.ts # core/frontend/src/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.ts # core/frontend/src/tile/map/ImageryProviders/MapBoxLayerImageryProvider.ts # core/frontend/src/tile/map/ImageryTileTree.ts # core/frontend/src/tile/map/MapTileTree.ts # docs/changehistory/NextVersion.md
| * If defined, sets the MapBox key for the `MapLayerOptions` as an "access_token". | ||
| * IMJS_BING_MAPS_KEY | ||
| * If defined, sets a Bing Maps key within the `MapLayerOptions` as a "key" type. | ||
| * IMJS_BING_MAPS_KEY |
There was a problem hiding this comment.
bad copy and paste,
| * IMJS_BING_MAPS_KEY | |
| * IMJS_GOOGLE_MAPS_KEY |
ScreenViewport.addDecorations() was iterating getTileTreeRefs() which includes the view's own model and displayStyle refs — these are already decorated via context.addFromDecorator(this.view). This redundant iteration was introduced in ce418d1 (GoogleMaps support #7604). The fix iterates only mapTileTreeRefs (needed for map layer decorations like Google Maps attribution) and tiledGraphicsProviderRefs (external providers), matching the 4.11 behavior while preserving the map decoration support that #7604 intended. This reduces per-frame overhead during dynamics (move/copy drag) when decorations are invalidated, especially with many physical models generating many tile tree references. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
New imagery format / proviter to support Google maps 2D tiles:

More details available in NextVersion.md.