Repository navigation
Draw large polygon sets as raster tiles (PolygonTiler) - #17
Merged
Merged
Conversation
The polygon controller gets a PolygonTiler, whose tiles are shown through the raster layer path the marker tiles use (upsert / removeById, outside the app's RasterLayer composition). Tiled polygons stay registered for taps and give the map SDK nothing. The polygon tile layer goes where the SDK's polygon layers do: over the basemap, under polylines and markers.
core's PolygonController.destroy() releases its tiler (02369fa), but this provider's own polygon conductor does not extend it and its destroy() was empty, so the tile server kept every destroyed map's tiled polygons.
…change makes it untileable Setting geodesic on a tiled polygon in place, or giving it points that span half the world or fewer than three, kept it in the tiles. update() now checks canTile and, when it fails, takes the polygon out of the tiles and draws it natively. It stays on the map, so this is not an add.
develop replaced the polygon conductor with a controller that extends core's PolygonController, which already routes polygons through the tiler, moves an untileable one to native drawing, and disposes the tiler on destroy. The conductor's tiling is dropped with it; the fill renderer now leaves out the tiled entities (no features) when it redraws. The polygon tiles are stacked with OverlayStacking: at the bottom of the polygon band (over raster layers and ground images, under circles, polylines and markers), where the anchor list used to put them.
Additions only: the polygon tiles' stacking key, and declarations develop added without running apiDump (TILE_REFRESH_COALESCE, and on ArcGIS the marker controller's constructor that takes a boolean).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
何をするか
多数のポリゴン(既定: 2,000 個以上または頂点 50,000 以上)を、ネイティブの図形ではなくラスタータイルとして描きます(
PolygonTilingOptions/PolygonTiler)。web・Android・iOS で同じ設計です。このリポジトリで変えたこと
POLYGON_TILE(ポリゴンの帯の一番下)に置きます。develop の取り込み
このブランチは push 済みだったので、rebase せず
origin/developを merge commit で取り込みました。testDebugUnitTest: core 350 件ほか全部 pass(OMM は develop から引き継いだ 1 件の失敗のみ。android.util.Log.isLoggableがテストでモックされていない)。apiCheck: 全モジュール ok(増えた API はベースラインに追加)。マージの順番
この機能は複数のリポジトリにまたがります。android-sdk-core → android-sdk-compose(feat/polygons)→ 各 android-for- → android-sdk(親)* の順にマージが要ります。
この PR は大きな機能なので、マージするかはレビューのうえで判断してください。