2010-10-28 5 views
1

j'ai obtenu une carte de base en cours d'exécution en utilisant Google Maps v3cartes Google - ajouter des directions routières, cercle, zones de code postal

fonctionnalités suivantes que je voudrais ajouter comprennent:

  • ligne de tirage comme directions routières au lieu d'une polyligne directe point à point
  • tracer un cercle de 75 km autour d'un point spécifique
  • souligner le code postal d'un point spécifique.

Je vous serais reconnaissant les pensées des gens sur ces sujets

var geocoder; 
var map; 

function fnPresentMap() 
{ 
geocoder = new google.maps.Geocoder(); 

var locationArray = new Array(); 
     locationArray[0] = new Array(); 
     locationArray[1] = new Array(); 

     locationArray[0][0] = document.getElementById('LAT_OUT_1').innerHTML; 
     locationArray[0][1] = document.getElementById('LON_OUT_1').innerHTML; 

     locationArray[1][0] = document.getElementById('LAT_OUT_2').innerHTML; 
     locationArray[1][1] = document.getElementById('LON_OUT_2').innerHTML; 

    var latlng = new google.maps.LatLng(44, -75); 

    var myOptions = { 
    zoom: 8, 
    center: latlng, 
    mapTypeControl: true, 
    mapTypeControlOptions: { 
    style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}, 
    navigationControl: true, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 

     map = new google.maps.Map(document.getElementById("map"), myOptions); 
     var myLatlng; 
    var image_name; 

     for (var count = 0; count < locationArray.length; ++count){  
    image_name = "img/marker_"+(count+1)+".png"; 
    myLatlng = new google.maps.LatLng(locationArray[count][0],locationArray[count][1]); 
       var marker = new google.maps.Marker({ 
         position: myLatlng, 
         map: map, 
     icon: image_name  
       }); 
     } 

    // re-center 
    var centerLocation = new google.maps.LatLng(locationArray[0][0],locationArray[0][1]); 
    map.setCenter(centerLocation); 

    // show line 
    var points = [ 
        new google.maps.LatLng(locationArray[0][0],locationArray[0][1]), 
        new google.maps.LatLng(locationArray[1][0],locationArray[1][1]) 
     ]; 

    var line = new google.maps.Polyline({ 
      map: map, 
      path: points, 
      strokeColor: "#FF0000", 
      strokeWeight: 2, 
      strokeOpacity: 1.0 
     }); 



    } 

Répondre

0
  • Pour rendre les directions routières entre deux points précis, vous devez utiliser le Google Maps API directions service. Si vous consultez la documentation, vous trouverez des exemples assez simples pour faire une requête de directions et afficher les résultats sur une carte sous la forme d'une ligne entre les deux points.
  • Je pense que la meilleure approche pour dessiner un cercle autour d'un point est de dessiner un polygone avec suffisamment de points pour approcher un cercle. Vous pouvez trouver un bon exemple de ceci here.
  • Pour mettre en évidence le code postal à un point spécifique, je vous suggère d'utiliser le Google Maps API reverse geocoding service (convertir d'une latitude/longitude en une adresse lisible par un humain). Vous pouvez extraire le code postal de la réponse JSON que vous recevez, puis l'afficher sur la carte à l'aide d'une infoWindow ou d'un autre type de superposition.
Questions connexes