2012-06-25 1 views
1

Google지도 API를 사용하여 내지도를 만들었습니다. 정말 큰 이미지를 기반으로하는 맞춤형지도 유형입니다.맞춤지도 유형에 대한 좌표를 재설정 할 수 있습니까?

어쨌든 지구의 기본 latlng 좌표가 아닌 내 이미지에 상대적으로 latinng 좌표를 재설정 할 수 있습니까?

I.E. 이미지의 왼쪽 상단 모서리를 만듭니다 (0,0).

감사합니다.

답변

1

네, 고객님의 custom projection definitions으로 가능합니다. 이 lunar surface example을 왼쪽 위 모서리가 (0,0)이고 오른쪽 하단이 (50,50) 인 간단한 투영으로 수정했습니다. 앱에서 작동하려면 값을 변경해야 할 가능성이 큽니다.

한계를 조금 넘기고 위도는 +/- 90, 경도는 +/- 180로 제한되어 있습니다. 경도는 180 도로 돌아갑니다. 즉, (100, 200)의 맞춤 좌표를 정의하는 것은 불가능한 것처럼 보입니다.

여기에 수정 된 달 표면의 데모를 참조 경고에 정의 latLng를 표시하기 위해 아무 곳이나 클릭 :

http://jsfiddle.net/yV6xv/79/

function percentProjection() {}; 

percentProjection.prototype.fromLatLngToPoint = function(latlng) { 
    // pixel size of tile at zoom 0 
    var max = 256; 

    // define bottom-right corner as (50, 50) 
    var x = max * latlng.lng()/50; 
    var y = max * latlng.lat()/50; 
    return new google.maps.Point(x, y); 
}; 

percentProjection.prototype.fromPointToLatLng = function(pixel) { 
    // inverse conversion 
    var max = 256; 
    var lng = pixel.x/max * 50; 
    var lat = pixel.y/max * 50; 
    return new google.maps.LatLng(lat, lng); 
}; 
+0

정말 감사합니다! 나는 명확하고 포괄적 인 대답에 감사드립니다. – Harry

+0

jsfiddle에서 만든 코드뿐만 아니라 코드도 구현했습니다 :'moonMapType.projection = new percentProjection();'그러나 효과가있는 것 같지 않습니다. 작동시키기 위해 추가해야 할 것이 있습니다. ? minZoom 0도 필요합니까? 감사합니다. – Harry

+1

투영을'mapTypes','mapTypeId' 옵션 (jsfiddle에서'initialize' 안에 보입니다)과 연결 시켰습니까? 나는 최소한의 테스트가 필요하다. 확대/축소 문제는 생각하지 않아요. –

관련 문제