2016-11-12 5 views
-1

Je veux construire une zone de polygone en tant qu'images en utilisant google MAP, vous pouvez savoir comment obtenir la matrice de coordonnées pour la zone?Comment obtenir un tableau de points qui permettrait de construire une carte google Polygon

enter image description here

picture of desired polygon

+1

question connexe: [OSM to Google Maps polygones] (http://stackoverflow.com/questions/36704706/osm-to-google-maps-polygons) – geocodezip

+0

une autre question connexe: http://stackoverflow.com/questions/9706484/add-search-aire-contour-sur-google-maps-resultat – xomena

+0

@xomena merci beaucoup, vous m'avez vraiment aidé –

Répondre

1

Il est possible de construire un polygone en utilisant une matrice de couples lat, lng d'au moins 3 éléments.

Si le tableau n'est pas fermé, Google Maps le ferme par défaut.

Alors que pour la plupart de DBMS, vous devez enregistrer un tableau de coordonnées qui est fermé. Que signifie "fermer"? Essentiellement, les premier et dernier points du tableau sont égaux. SGBD comme MongoDB va générer une erreur pour les données géospatiales formatées incorrectes. MongoDB Documentation on $polygon. Une autre chose à mentionner est que, MongoDB accepte UNIQUEMENT lng, lat coordonnées formatées.

Comme vous pouvez le voir Official Google Maps Documentation on Polygons vous pouvez dessiner un Polygon à partir d'un tableau de coordonnées:

// Define the LatLng coordinates for the polygon. 
var triangleCoords = [ 
    {lat: 25.774, lng: -80.190}, 
    {lat: 18.466, lng: -66.118}, 
    {lat: 32.321, lng: -64.757} 
]; 

Ensuite, vous pouvez construire et mettre sur la carte:

// Construct the polygon. 
var bermudaTriangle = new google.maps.Polygon({ 
    paths: triangleCoords, //Array of Coordinates 
    strokeColor: '#FF0000', //Color of the line 
    strokeOpacity: 0.8, //Color opacity 
    strokeWeight: 3, //Line weight 
    fillColor: '#FF0000', //Inner Color 
    fillOpacity: 0.35 //Inner color opacity 
}); 
//Set it on the map 
bermudaTriangle.setMap(map); 

Ensuite, vous pouvez ajouter des informations à votre polygone en utilisant clickListener et infoWindows

// Add a listener for the click event and opens infoWindow 
bermudaTriangle.addListener('click', showArrays); 

infoWindow = new google.maps.InfoWindow; 

Vous pouvez en savoir plus sur infoWindows here.

Enfin, here, vous pouvez trouver un Plunker I composé de Google Maps Docs et AngularJS. Bien sûr, vous pouvez le faire avec du Javascript pur.

Enfin et surtout, assurez-vous d'avoir des points sur les limites et avec des coordonnées lat, lng raisonnables.

J'espère que j'ai été utile.