2012-09-01 39 views
7

Tôi đang tìm cách vẽ bán kính của hình tròn hoặc đường thẳng từ tâm vòng tròn đến cạnh của vòng tròn (ở tọa độ chính xác theo độ).API Google Maps trong Javascript, Vẽ bán kính của một vòng kết nối?

Có thể không? Làm sao?

Hiện tại, tôi vẽ một vòng tròn có API từ chính giữa bản đồ của tôi. Tôi không nghĩ rằng nó sẽ giúp ...

Ví dụ về những gì tôi sẽ: http://twitpic.com/aq40vv

var sunCircle = { 
      strokeColor: "#c3fc49", 
      strokeOpacity: 0.8, 
      strokeWeight: 2, 
      fillColor: "#c3fc49", 
      fillOpacity: 0.35, 
      map: map, 
      center: latlng, 
      radius: 1500 
     }; 
     cityCircle = new google.maps.Circle(sunCircle) 
+0

Bạn nên đăng mã mà bạn đã thử cho đến thời điểm này. –

+0

Tôi đã chỉnh sửa bài đăng :) –

Trả lời

1

Điều hoàn hảo cho điều này là computeOffset(from:LatLng, distance:number, heading:number, radius?:number) chức năng từ namespace google.maps.geometry.spherical, như tham chiếu trong documentation

Từ đó, chỉ cần tạo một polyline từ trung tâm của vòng tròn với bán kính của nó là offset, bạn có thể kiểm tra một ví dụ nhanh mà tôi đã thực hiện here (chỉ cần nhấp quanh bản đồ để xem nó hoạt động)

+0

Đó chính xác là những gì tôi cần! Cảm ơn. –

+0

Có cách nào để di chuyển polyline sau đó không? Cho nó một "con đường" mới? –

+0

@Scofred yes, Polyline có phương thức 'getPath' và' setPath', bạn có thể kiểm tra chúng trong [documentation] (https://developers.google.com/maps/documentation/javascript/reference#Polyline) – lccarrasco

8

Hãy thử điều này (không chắc chắn nếu điều này là những gì bạn yêu cầu)

HTML:

<div id="map_canvas"></div>​ 

JS:

var map; 
var latlng = new google.maps.LatLng(-34.397, 150.644); 
function initialize() { 
    var mapOptions = { 
     center: latlng, 
     zoom: 9, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var el=document.getElementById("map_canvas"); 
    map = new google.maps.Map(el, mapOptions); 

    var marker = new google.maps.Marker({ 
     map: map, 
     position: latlng 
    }); 

    var sunCircle = { 
     strokeColor: "#c3fc49", 
     strokeOpacity: 0.8, 
     strokeWeight: 2, 
     fillColor: "#c3fc49", 
     fillOpacity: 0.35, 
     map: map, 
     center: latlng, 
     radius: 15000 // in meters 
    }; 
    cityCircle = new google.maps.Circle(sunCircle) 
    cityCircle.bindTo('center', marker, 'position'); 
} 
initialize(); 

DEMO.

Tham chiếu:Here và cũng this có thể hữu ích.

+1

Cảm ơn sự giúp đỡ của bạn nhưng nó không phải là những gì tôi cần. –

Các vấn đề liên quan