2014-09-02 6 views
1

Google지도에서 좌표를 사용하여 사각형을 만듭니다.어떻게 Google지도에서 사각형 크기를 설정할 수 있습니까?

크기를 75 미터 (폭 & 높이 75)로 설정하고 싶습니다.

function initialize() { 

    var map = new google.maps.Map(document.getElementById('map-canvas'), { 
    zoom: 20, 
    center: new google.maps.LatLng(40.626805, -89.539396), 
    mapTypeId: google.maps.MapTypeId.TERRAIN 
    }); 

var rectangle = new google.maps.Rectangle({ 
    strokeColor: 'green', 
    strokeOpacity: 12, 
    strokeWeight: 12,  
    fillColor: 'green', 
    fillOpacity: 12,  
    map: map, 
    bounds: new google.maps.LatLngBounds(
    new google.maps.LatLng(40.626805, -89.539396), 
    new google.maps.LatLng(40.626055, -89.538507)) 
    });  

} 

google.maps.event.addDomListener(window, 'load', initialize); 

바이올린 예 :

이 내 코드입니다 http://jsfiddle.net/cnuu7rtL/4/

내가 구글 맵에 사각형의 크기를 설정할 수있는 방법을 가르쳐주세요?

사용 geometry-library 경계를 생성하기 위해 주어진 중심으로부터의 거리를 계산하기 :

+0

직사각형 사이즈가'bounds' cofigured 객체를 사용한다. 당신은 초기 좌표를 만들어야하고 닫는 좌표를 만들고자하는 거리 또는'size'를 추가해야합니다. http://stackoverflow.com/questions/2839533/adding-distance-to-a-gps-coordinate –

+0

생각합니다. 당신이 게시 한 링크가 안드로이드와 관련이 있습니다. 내 코드를 볼 수있는 Google지도의 자바 스크립트에서 이것을 필요로합니다. –

+0

예, 이론은 동일합니다. –

답변

1

당신이 사각형의 원하는 중심이 가정 (이 등 남서, 북동, 같은 다른 포인트도 가능).

샘플 기능 :

function calcBounds(center,size){ 

    var n=google.maps.geometry.spherical.computeOffset(center,size.height/2,0).lat(), 
     s=google.maps.geometry.spherical.computeOffset(center,size.height/2,180).lat(), 
     e=google.maps.geometry.spherical.computeOffset(center,size.width/2,90).lng(), 
     w=google.maps.geometry.spherical.computeOffset(center,size.width/2,270).lng(); 
     return new google.maps.LatLngBounds(new google.maps.LatLng(s,w), 
               new google.maps.LatLng(n,e)) 

    } 

용도 :

new google.maps.Rectangle({bounds:calcBounds(new google.maps.LatLng(40.626805, 
                    -89.539396), 
              new google.maps.Size(75,75)), 
          map:map}); 

데모 : http://jsfiddle.net/cnuu7rtL/7/

+0

좋아요, 필자의 바이올린 예제로 코드를 구현하겠습니다. –

+0

코드가 완벽하게 작동했습니다. 감사합니다. –

+0

Dr.Molle,하지만 약 600 개의 그리드 박스가 있기 때문에 코드 작성에 문제가 있습니다. 코드가 1 개만 표시됩니다. 이유를 설명 할 수 있습니까? –

관련 문제