2015-09-05 6 views
0

Voici mon code (javascript + HTML),Comment séparer les polygones?

<!DOCTYPE html> 
<html> 
    <head> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> 
    <meta charset="utf-8"> 
    <title>Simple Polygon</title> 
    <style> 
     html, body { 
     height: 100%; 
     margin: 0; 
     padding: 0; 
     } 
     #map { 
     height: 100%; 
     } 
    </style> 
    </head> 
    <body> 
<p id="demo"></p> 
    <div id="map"></div> 
    <script> 



function initMap() { 
    var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 12, 
    center: {lat: 33.53625, lng: -111.92674}, 
    mapTypeId: google.maps.MapTypeId.TERRAIN 
    }); 
var str = "33.53625,-111.92674,33.51049,-111.96279,33.50141,-111.90374;33.53424,-111.82674,33.50944,-111.86279,33.50174,-111.80374"; 
    var mainstr = str.split(";"); 
    var mainlen = mainstr.length; 
    var newdata; 
    var newsplit; 
    var newstrlen; 
    var halflen; 
    var bermudaTriangle=[]; 
    var triangleCoords = []; 


for (i = 0; i < 2; i++) 
{ 
newdata=mainstr[i]; 
newsplit=newdata.split(","); 
newstrlen=newsplit.length; 
halflen=newstrlen/2; 

for (x = 0; x < halflen; x++) { 
    n = 2 * x; 
    h = 2 * x + 1; 
    triangleCoords.push({ lat: parseFloat(newsplit[n],10), lng: parseFloat(newsplit[h],10) }); 

} 

bermudaTriangle = new google.maps.Polygon({ 
    paths: triangleCoords, 
    strokeColor: '#FF0000', 
    strokeOpacity: 0.8, 
    strokeWeight: 2, 
    fillColor: '#FF0000', 
    fillOpacity: 0.35 

    }); 
    bermudaTriangle.setMap(map); 


} 


} 

    </script> 
    <script async defer 
     src="https://maps.googleapis.com/maps/api/js?signed_in=true&callback=initMap"></script> 
    </body> 
</html> 

Il y a 2 ensembles de triangle coordonnées dans var str qui sont séparés par ";", j'ai pu séparer ces deux ensembles de cordes, mais je suis incapable de dessiner les deux triangles seperately.I a pu obtenir quand je courais le code sans boucle séparement, http://postimg.org/image/hjnyu5uxf/

mais quand je courais au-dessus de programme I » Le programme pense que c'est un seul polygone, où est-ce que j'ai mal fait?

Répondre

0

place var triangleCoords = []; à l'intérieur de la première boucle.

for (i = 0; i < 2; i++) 
{ 
var triangleCoords = []; 
newdata=mainstr[i]; 
newsplit=newdata.split(","); 
newstrlen=newsplit.length; 
halflen=newstrlen/2; 
for (x = 0; x < halflen; x++) { 
    n = 2 * x; 
    h = 2 * x + 1; 
    triangleCoords.push({ lat: parseFloat(newsplit[n],10), lng: parseFloat(newsplit[h],10) }); 

} 

bermudaTriangle = new google.maps.Polygon({ 
    paths: triangleCoords, 
    strokeColor: '#FF0000', 
    strokeOpacity: 0.8, 
    strokeWeight: 2, 
    fillColor: '#FF0000', 
    fillOpacity: 0.35 

    }); 
    bermudaTriangle.setMap(map); 


}