Skip to content

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

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

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions