2012-10-29 16 views
6

Jestem nowy w javascript i api mapy Google, więc zakodowałem takie punkty: "yzocFzynhVq} @ n} @o} @ nzD" i próbując narysować polilinią, I nie znalazłem tematów ani dokumentów, aby rozwiązać mój problem. Jest kilka tematów jak to rozszyfrować, ale nie muszę tego robić. Po prostu muszę narysować polilinię za pomocą zakodowanych punktów. Czy ktoś mógłby mi dać przykład?Google api narysowana polilinia z zakodowanymi punktami

+1

Chcesz dołączyć bibliotekę 'geometry' z interfejsem google maps API, będzie ona w stanie dekodować ten zakodowany ciąg polilinii. – JasonWyatt

Odpowiedz

8

Zobacz geometry library documentation for decodePath

To będzie zamienić zakodowany ciąg do tablicy obiektów google.maps.LatLng które mogą być używane do tworzenia Polyline

Working example

roboczy fragment kodu:

function initialize() { 
 
    var myLatLng = new google.maps.LatLng(24.886436490787712, -70.2685546875); 
 
    var mapOptions = { 
 
    zoom: 13, 
 
    center: myLatLng, 
 
    mapTypeId: google.maps.MapTypeId.TERRAIN 
 
    }; 
 

 
    var bermudaTriangle; 
 

 
    var map = new google.maps.Map(document.getElementById('map_canvas'), 
 
    mapOptions); 
 

 

 
    // Construct the polygon 
 
    bermudaTriangle = new google.maps.Polygon({ 
 
    paths: google.maps.geometry.encoding.decodePath("yzocFzynhVq}@n}@o}@nzD"), 
 
    strokeColor: '#FF0000', 
 
    strokeOpacity: 0.8, 
 
    strokeWeight: 2, 
 
    fillColor: '#FF0000', 
 
    fillOpacity: 0.35 
 
    }); 
 

 
    bermudaTriangle.setMap(map); 
 
    map.setCenter(bermudaTriangle.getPath().getAt(Math.round(bermudaTriangle.getPath().getLength()/2))); 
 
} 
 
google.maps.event.addDomListener(window, 'load', initialize);
html, 
 
body { 
 
    height: 100%; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
#map_canvas { 
 
    height: 100%; 
 
} 
 
@media print { 
 
    html, 
 
    body { 
 
    height: auto; 
 
    } 
 
    #map_canvas { 
 
    height: 650px; 
 
    } 
 
}
<script src="https://maps.googleapis.com/maps/api/js?libraries=geometry"></script> 
 
<div id="map_canvas"></div>

+0

Czy mogę utworzyć polilinię bez dekodowania, jak w google api v2? –

+0

Nie. Nie jest to jednak trudne, patrz przykład dodany do odpowiedzi. – geocodezip

+0

Dzięki! Spróbuję ... –

Powiązane problemy