2016-03-15 1 views
0

En regardant la documentation du constructeur L.Polygon, il semble que vous pouvez passer dans plusieurs tableaux de coordonnées après le tableau initial pour construire un polygone, avec plusieurs trous dedans.Leaflet.js - Puis-je ajouter plusieurs trous/découpes à l'intérieur d'un seul polygone

J'ai essayé quelques petits échantillons de données avec plusieurs tableaux, et les trous ont été ombrés après l'ajout du premier. Mais quand on est ajouté, ça a bien fonctionné.

Provenant de MSSQL, les formes sont déclarées comme valides en utilisant la fonction geometry :: STIsValid.

Mes données sont-elles incorrectes ou ne sont-elles pas prises en charge à ce moment-là? La documentation suggère qu'il est pris en charge. Et chaque exemple que je trouve sur stackoverflow ou l'internet général ne montre que des trous uniques.

Ceci est également avec la fonction L.Polygon (pas GeoJSON).

+0

Pourriez-vous donner un exemple du tableau que vous passez à L.Polygon? – iH8

+0

iH8, cela a été répondu et confirmé pour moi ci-dessous. Le problème semble être avec les formes UNION'ed revenant de MSSQL pour moi. –

Répondre

2

Attend de travailler avec plusieurs trous:

var coords = [ 
    [ // Exterior Ring 
    [48.84, 2.3], 
    [48.9, 2.3], 
    [48.9, 2.4], 
    [48.84, 2.4], 
    [48.84, 2.3] 
    ], // Then holes (interior rings) 
    [ // First hole 
    [48.85, 2.31], 
    [48.89, 2.31], 
    [48.89, 2.33], 
    [48.85, 2.33], 
    [48.85, 2.31] 
    ], 
    [ // Second hole 
    [48.85, 2.34], 
    [48.89, 2.34], 
    [48.89, 2.35], 
    [48.85, 2.35], 
    [48.85, 2.34] 
    ], 
    [ // Third hole 
    [48.85, 2.36], 
    [48.89, 2.36], 
    [48.89, 2.39], 
    [48.85, 2.39], 
    [48.85, 2.36] 
    ] 
]; 

L.polygon(coords).addTo(map); 

jsFiddle: http://jsfiddle.net/ve2huzxw/204/

enter image description here