Skip to content

Not self intersecting geojson becomes self intersecting as a result of simplify #185

@tiokmu1731

Description

@tiokmu1731

First, I thank everyone participating in this project.

I guess it's not a bug, but I now found the case that

  • The original geojson is not self intersecting.
  • As a result of simplify in converting to vector-tile, generated vector-tile becomes self intersecting.

The original data I used is data of the Amami Islands from National land numerical information, Japan.
The geojson I attached is clipped from the original.
This clipped geojson is not self intersecting.

A20-070402_46_AmamiIslands_kasari.json

But after I converting this geojson to vector-tile using geojson-vt in the code below,
generated vector-tile becomes self intersecting as a result of simplify.

import geojsonvt from 'geojson-vt';
import geojson from "./geojson/A20-070402_46_AmamiIslands_kasari.json";

const tileIndex = geojsonvt(geojson);

const z = 10;
const x = 880;
const y = 427;

// request a particular tile
const features = tileIndex.getTile(z, x, y).features;

const amami_geometry = features[12].geometry[0];

// get WKT
let cood = "POLYGON((";

for (let i = 0; i < amami_geometry.length; i++) {
    cood+= amami_geometry[i][0] + (' -') + amami_geometry[i][1] + ',';
}

cood += "))";
console.log(cood);

Left: Original geojson
Right: Geometry made into vector tiles using geojson-vt
amami-airport-self-intersecting

I'm using Maplibre and it seems to use geojson-vt in converting to vector-tile.
In Maplibre project, an issue that self intersecting vector tile causes displaying unexpected form has been raised before.
I tried to display the geojson I attached in Maplibre, but it is also not displayed as I expected.
*An acute-angled triangle is displayed in particular zoom level:9.0-10.9. (At the point of blue arrow)

amami_description

The result I expect is the generated vector tile from geojson-vt is not self intersecting
if the original geo-json is as well. Is it possible to fix this case in geojson-vt?
*As I search similar cases, Tippecanoe corrects the geometry using mapbox/wagyu libraly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions