2016-04-02 10 views
0

JavaScript'e yeniyim ve çokgen çizmek için google map API'yi kullanmaya çalışıyorum.google harita API'sinde çokgenler nasıl koordinat dizisi kullanarak çizilir?

ancak
var trianglecoords=[ 
      {lat: 18.466, lng: -66.518}, 
      {lat: 18.466, lng: -66.118}, 
      {lat: 18.166, lng: -66.118}, 
       ]; 

benim biçimidir:

var trianglecoords=[ 
        [18.466,-66.518], 
        [18.466,-66.118], 
        [18.166,-66.118], 
         ]; 

Haritaya üçgeni göremiyorum benim biçimi kullanarak google.maps.Polygons varsayılan yolları aşağıdaki biçimde JSON kabul çalışır. biri bana yardım edebilir mi?

function initMap() { 
    var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 5, 
    center: {lat: 24.886, lng: -70.268}, 
    mapTypeId: google.maps.MapTypeId.TERRAIN 
    }); 

    // Define the LatLng coordinates for the polygon's path. 
    var triangleCoords = [ 
    [25.774, -80.190], 
    [18.466, -66.118], 
    [32.321,-64.757], 
    [25.774, -80.190] 
    ]; 

    // Construct the polygon. 
    var bermudaTriangle = new google.maps.Polygon({ 
    paths: triangleCoords, 
    strokeColor: '#FF0000', 
    strokeOpacity: 0.8, 
    strokeWeight: 2, 
    fillColor: '#FF0000', 
    fillOpacity: 0.35 
    }); 
    bermudaTriangle.setMap(map); 
} 
+0

Biçiminiz çalışmıyor. Onu bir google.maps.LatLng nesnesi dizisine veya google.maps.LatLngLiteral nesnelerine çevirmeniz gerekir. – geocodezip

+0

Teşekkürler! latlng nesneleri oluşturmak için aşağıdaki kodları eklediğimde çalıştı: var points = []; (var i = 0; i <4; i ++) { points.push (yeni google.maps.LatLng (triangleCoords [i] [0], triangleCoords [i] [1])) } –

cevap

3

Kişisel biçimi çalışmaz:

burada benim kodudur. Onu google.maps.LatLng nesneler dizisine veya google.maps.LatLngLiteral nesnelerine çevirmeniz gerekir.

Ya:

var points=[]; 
for(var i=0; i<triangleCoords.length; i++) { 
    points.push(new google.maps.LatLng(triangleCoords[i][0], 
            triangleCoords[i][1])); 
} 
// Construct the polygon. 
var bermudaTriangle = new google.maps.Polygon({ 
    paths: points, 
    strokeColor: '#FF0000', 
    strokeOpacity: 0.8, 
    strokeWeight: 2, 
    fillColor: '#FF0000', 
    fillOpacity: 0.35 
}); 
bermudaTriangle.setMap(map); 

Veya:

var points=[]; 
for(var i=0; i<triangleCoords.length; i++) { 
    points.push({ 
    lat: triangleCoords[i][0], 
    lng: triangleCoords[i][1] 
    }); 
} 
// Construct the polygon. 
var bermudaTriangle = new google.maps.Polygon({ 
    paths: points, 
    strokeColor: '#FF0000', 
    strokeOpacity: 0.8, 
    strokeWeight: 2, 
    fillColor: '#FF0000', 
    fillOpacity: 0.35 
}); 
bermudaTriangle.setMap(map); 

kod parçacığı:

function initMap() { 
 
    var map = new google.maps.Map(document.getElementById('map'), { 
 
    zoom: 5, 
 
    center: { 
 
     lat: 24.886, 
 
     lng: -70.268 
 
    }, 
 
    mapTypeId: google.maps.MapTypeId.TERRAIN 
 
    }); 
 

 
    // Define the LatLng coordinates for the polygon's path. 
 
    var triangleCoords = [ 
 
    [25.774, -80.190], 
 
    [18.466, -66.118], 
 
    [32.321, -64.757], 
 
    [25.774, -80.190] 
 
    ]; 
 
    var points = []; 
 
    for (var i = 0; i < triangleCoords.length; i++) { 
 
    points.push({ 
 
     lat: triangleCoords[i][0], 
 
     lng: triangleCoords[i][1] 
 
    }); 
 
    } 
 
    // Construct the polygon. 
 
    var bermudaTriangle = new google.maps.Polygon({ 
 
    paths: points, 
 
    strokeColor: '#FF0000', 
 
    strokeOpacity: 0.8, 
 
    strokeWeight: 2, 
 
    fillColor: '#FF0000', 
 
    fillOpacity: 0.35 
 
    }); 
 
    bermudaTriangle.setMap(map); 
 
} 
 
google.maps.event.addDomListener(window, "load", initMap);
html, 
 
body, 
 
#map { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<div id="map"></div>