Skip to content

initial vector tile integration#49

Open
rkreienbuehl wants to merge 1 commit into
p-lr:feature/mvt-integrationfrom
rkreienbuehl:feature/mvt-integration
Open

initial vector tile integration#49
rkreienbuehl wants to merge 1 commit into
p-lr:feature/mvt-integrationfrom
rkreienbuehl:feature/mvt-integration

Conversation

@rkreienbuehl

Copy link
Copy Markdown
Contributor

New MR as discussed.

@p-lr

p-lr commented Jun 27, 2026

Copy link
Copy Markdown
Owner

This is much clearer now. I'll have look and the goal is to merge asap.

Comment thread gradle/libs.versions.toml Outdated
pbandk = "0.16.0"
kotlinx-datetime = "0.6.2"
kotlinx-serialization = "1.11.0"
voyager = "2.2.21-1.10.3"

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't need this, we're using compose navigation

@rkreienbuehl

Copy link
Copy Markdown
Contributor Author

In the meantime I will try to get a complete list of what is missing in case of rendering compared to the MapLibre Style Specs.

Comment thread gradle/libs.versions.toml
coroutines = "1.11.0"
kotlinx-io = "0.9.0"
pbandk = "0.16.0"
kotlinx-datetime = "0.6.2"

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure exactly why we need this


internal sealed interface VisibleWindow {
data class BoundsConstrained(val tileMatrix: TileMatrix): VisibleWindow
val tileMatrix: TileMatrix

@p-lr p-lr Jun 27, 2026

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are those changes necessary?

@p-lr

p-lr commented Jun 27, 2026

Copy link
Copy Markdown
Owner

Just to clarify: my goal for now is only to ensure the minimum changes are made to the core library. The rest will come later.
I've started to make comments. Also, I'd like to regroup vector specific classes under vector package.
For example, SymbolState should be into vector/ui/state and so on. Another example:
SymbolComposer.kt into vector/ui/symbols
That will simplify the review. Could you do this?

@p-lr

p-lr commented Jun 27, 2026

Copy link
Copy Markdown
Owner

Instead of making a ton of annoying comments, we can do it this way:
In addition to the vector package refactoring, could you please have a look at all the changes made to the core library, and remove the ones which aren't strictly necessary?
By doing this, when I'll do my final pass, I will know that the changes I see are changes you really want to make.

@rkreienbuehl

Copy link
Copy Markdown
Contributor Author

Sure, I will refactor it. Some of the changes I need to look into, because they were made prior my work. I think today or maybe tomorrow I should push the changes in a commit.

@p-lr

p-lr commented Jun 27, 2026

Copy link
Copy Markdown
Owner

Ok no problem!

@rkreienbuehl rkreienbuehl force-pushed the feature/mvt-integration branch from 5117ebc to 4693e6b Compare June 27, 2026 13:42
@rkreienbuehl

rkreienbuehl commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

I made the changes and packed it again in a single commit. In this instance I added a minimal implementation of infinity scroll y to be able to revert all changes in library/src/commonMain/kotlin/ovh/plrapps/mapcompose/core/VisibleTilesResolver.kt compared to master.
There are now no changes in core only small changes in api, ui/state and MapUi.kt. New Files are all held in vector package.
Should I also move MapState.addVectorLayer() into a separate api package in vector package?

  • kotlinx-datetime is used in a test that @jershell implemented to measure performance
  • pbandk is used to decode Protobuf

@p-lr

p-lr commented Jun 27, 2026

Copy link
Copy Markdown
Owner

I made the changes and packed it again in a single commit. In this instance I added a minimal implementation of infinity scroll y to be able to revert all changes in library/src/commonMain/kotlin/ovh/plrapps/mapcompose/core/VisibleTilesResolver.kt compared to master.

Good one. I haven't implemented infinity scroll y for practical reason. Do you see a use case? I would say this is out of scope for this feature.

Should I also move MapState.addVectorLayer() into a separate api package in vector package?

We can keep those in core indeed.

kotlinx-datetime is used in a test that @jershell implemented to measure performance

Alright, we just need to make sure it's added as testImplementation. My comment was on kotlinx-datetime only.

Thanks

@rkreienbuehl

rkreienbuehl commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

Good one. I haven't implemented infinity scroll y for practical reason. Do you see a use case? I would say this is out of scope for this feature.

Sorry, I meant infinite scroll x

Alright, we just need to make sure it's added as testImplementation. My comment was on kotlinx-datetime only.

It is added unter commonTest.dependencies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants