2012-05-16 3 views
0

J'ai le code ci-dessous:trous multiples dans Polygon Google Maps lorsque vous parcourez tableau

while p < points.length 
    locs = points[p] 
    latLng = [] 
    i = 0 
    len = locs.length 

    while i < len 
    point = locs[i] 
    latLng.push new google.maps.LatLng(point[0], point[1]) 
    i++ 
    marker = new google.maps.Polygon(
    paths: latLng 
    fillColor: "#000000", 
    fillOpacity: 0 
    map: @gMap 
) 
    markers.push(marker) 
    p++ 

qui itterates par un tirage au sort éventail de polygones séparés. Cela fonctionne vraiment bien. Cependant quand j'essaye d'introduire un "polygone de récipient" que les nombreux polygones feront des trous je suis perplexe. Je comprends la démo ici ...

PropertySearch.tintPolygon = new google.maps.Polygon({ 
    paths: [ everythingElse, circleOverlay ], 
    strokeColor: "#000000", 
    strokeOpacity: 0.8, 
    strokeWeight: 2, 
    fillColor: "#000000", 
    fillOpacity: 0.5 
}); 

Je comprends que vous pouvez avoir deux chemins. Cependant, je boucle sur mon constructeur de polygone donc ce que je reçois est une carte très noire car il continue à redessiner le conteneur. Ce que j'essaye d'obtenir est un conteneur d'opacité de 0.5 qui a des trous qui sont les plus petits polygones étant itérés plus de

Éditer 1: Si j'utilise une seule forme, je peux obtenir l'effet désiré pour ces formes multiples. Je pense que je dois déplacer tous les chemins dans leur propre variable puis les placer dans la carte?

Répondre

0

Je ne vois pas comment vous construisez le polygone dans vos extraits de code. Cependant, pour un polygone avec des trous, chacun des chemins séparés doit être une entrée dans le tableau définissant le polygone. Pour un polygone à quatre trous, vous devez définir cinq chemins dans un polygone.

Pour que les trous apparaissent correctement dans les navigateurs prenant en charge les graphiques Canvas, il est nécessaire de prendre en compte la direction de l'enroulement: chaque trou doit être défini dans le sens inverse du polygone qui le contient. C'est-à-dire que pour un polygone contenant défini par des points progressant dans le sens des aiguilles d'une montre, chacun des trous qu'il contient doit être défini dans le sens inverse des aiguilles d'une montre.

+0

comment est-ce que je peux produire mon tableau dans beaucoup de chemins séparés au lieu d'itérer sur chacun? Je suppose que j'ai un tableau de lat google, lng arrays? Http: //stackoverflow.com/questions/10619599/convert-array-to-google-lat-lng-array –

+0

merci qui a du sens! Je le faisais d'une manière stupide avant! –

Questions connexes