누구나 Google지도의 확대 / 축소 수준수치에 대한 실제 비율에 대한 링크 (또는 세부 정보)를 제공 할 수 있나요?

Google지도 레벨 13 = 1 : 20000

댓글

  • 내가이 기능을 만든 첫 번째 정보에 따르면 누군가가 사용할 수있을 것입니다! function setZoomLevel (meters) {//console.log(Zoom level set meters: ${meters}); var zoomfactor = 1; if (미터 < 1128) {zoomfactor = 15; } else if ((미터 > 1128) & & (미터 < 2256)) {zoomfactor = 14; } else if ((미터 > 2256) & & (미터 < 4513)) {zoomfactor = 13; } else if ((미터 > 4513) & & (미터 < 9027)) {zoomfactor = 12; } else if ((미터 > 9027) & & (미터 < 18055)) {zoomfactor = 11; } else if ((미터 > 18055) & & (미터 < 36111)) {zoomfactor = 10; } else if ((미터 > 36111) & & (미터 < 72

답변

오버레이를 계획하는지도를 디자인하는 경우 Google지도 또는 가상 지구를 통해 타일링 구성표를 만든 다음 찾고있는 것이 각 확대 / 축소 수준의 배율이라고 생각합니다. 다음을 사용하세요.

20 : 1128.497220 19 : 2256.994440 18 : 4513.988880 17 : 9027.977761 16 : 18055.955520 15 : 36111.911040 14 : 72223.822090 13 : 144447.644200 12 : 288895.288400 11 : 577790.576700 10 : 1155581.153000 9 : 2311162.307000 8 : 4622324.614000 7 : 9244649.227000 6 : 18489298.450000 5 : 36978596.910000 4 : 73957193.820000 3 : 147914387.600000 2 : 295828775.300000 1 : 591657550.500000 

출처 : http://webhelp.esri.com/arcgisserver/9.3/java/index.htm#designing_overlay_gm_mve.htm

댓글

  • @capdragon 감사합니다. ‘ 잘 알려진 출처 (ESRI)이지만 이러한 저울을 어떻게 만들 었는지 여전히 궁금합니다.
  • Rational은 누구에게 비판적입니까? ‘이 질문에 합리적 언급이 전혀 없습니다. 그는 자신의 직접적인 질문에 대한 직접적인 대답을 원한다고 생각합니다.
  • @ cap 이유없이 ‘ 구별하기 어렵거나 불가능합니다. 오답에서 정답. 이유없이 응답자의 권위에 의지해야합니다. 저는 ‘이 대화 목록의 다른 답글이 투표 된 이유가 ‘와 거의 관련이 없다고 확신합니다. 정확성 또는 직설 성-당신의 것이 가장 권위 있고 직설적이지만 오히려 다른 사람들이 제공하는 추론과 관련이 있습니다. BTW 나는 ‘ 당신의 투표를 거절하지 않았습니다.
  • 감사합니다 : +1. 여러분은 아마도 지리학 자나 원격 탐사 전문가 일 것입니다. 저는 ‘ 단지 GIS 개발자 일 뿐이며 그 사람이 답을 얻도록 돕고 싶습니다. 내 동료 (PHD 유형, 이중 MIT 전공)는 내가 그에게 간단한 질문을 할 때마다 한 시간의 강의에 들어가서 나를 잃어버린다. 나는 ‘ 더 이상 그에게 질문하지 않습니다 (나는 과학 석사를 보유하고 있습니다). 나는 다른 사람들이 합리적 등의 고기에 들어가기를 좋아한다는 것을 이해하지만 우리 중 많은 사람들이 그들이 말하는 것을 알기에는 너무 무지합니다. IMHO 그들은 그의 질문에 대답하지 않는 ‘ 답변을 혼동했습니다.
  • 배율은 기본 2에있는 래스터 타일로 균등하게 나눌 수 있도록 선택되었습니다. , (예 : 128, 512 …). Bing도 이와 비슷하게 msdn.microsoft.com/en-us/library/bb259689.aspx

답변

Google 직원이 작성한이 답변을 찾았습니다. 아마도 가장 정확한 답변 일 것입니다.

mercator 투영을 사용한지도 (예 : Google지도)의 해상도는 위도에 따라 다르기 때문에 정확하지 않습니다.

다음 공식을 사용하여 계산할 수 있습니다.

metersPerPx = 156543.03392 * Math.cos(latLng.lat() * Math.PI / 180) / Math.pow(2, zoom) 

이것은 지구의 반경이 6378137m라는 가정을 기반으로합니다. 우리가 사용하는 값입니다. 🙂

출처 : https://groups.google.com/forum/#!topic/google-maps-js-api-v3/hDRO4oHVSeM

BTW -다음과 같이 추측합니다.

"latLng.lat()" = map.getCenter().lat() "zoom" = map.getZoom() 

댓글

  • 당신의 공식은 무엇입니까? 위도 = 2.92 및 확대 / 축소 13에 대해 수행하면 19.08을 얻었습니다. 19.08이란 무엇인가요?
  • @Rodrigo 미터당 픽셀
  • 이 답변이 3 년 후에도 여전히 정확하고 매우 정확하다는 것을 증언 할 수 있습니다. 이것이 허용되는 대답이어야합니다.
  • 이 내용이 x 에만 적용됩니까 아니면 y 에도 적용됩니까? Javascript API를 통한 Google지도는 두 축에 동일한 축척을 사용하나요?
  • @OldGeezer 예, 모든 방향에서 작동합니다. 메르카토르의 어느 지점에서나 선형 왜곡은 모든 방향에서 동일합니다. 이것이 ‘가 미끄러운지도에 사용되는 이유 중 하나입니다. 확대하면 상당히 낮은 왜곡 맵을 얻을 수 있습니다. 규모를 보상하면이 답변이 수행합니다.

답변

수학 이해를 돕기 위해 (정확한 계산이 아니라 단지 설명을위한 것입니다.) :

  • Google의 웹지도 타일의 너비는 256 픽셀입니다.
  • 컴퓨터 모니터에는 인치당 100 픽셀 (PPI)이 있습니다. 즉, 256 픽셀의 길이는 약 6.5cm입니다. 즉, 0.065m .

  • 줌 레벨 0 에서 전체 360도 경도는 단일 타일에서 볼 수 있습니다. 자동으로 확대 / 축소 수준 1로 이동하므로 Google지도에서는 볼 수 없지만 OpenStreetMap s지도 에서 볼 수 있습니다 (동일한 타일링 체계를 사용함). ).

  • 적도에서의 360도 각도는 지구 둘레 40,075.16km와 같습니다. 이는 40075160m

  • 나누기 40075160m 0.065m 를 사용하면 “ 616313361 는 Equator에서 100DPI를 사용하는 컴퓨터 모니터의 확대 / 축소 수준 0

  • 요점은 배율이 모니터의 PPI와 위도 (메르카토르 투영으로 인해)에 따라 달라진다는 것입니다.
  • 확대 / 축소 수준 1의 경우 배율은 확대 / 축소 수준 0의 절반입니다.
  • 확대 수준 N의 경우 배율은 절반입니다. 확대 / 축소 수준 N-1의 f

또한 확인 : http://wiki.openstreetmap.org/wiki/FAQ#What_is_the_map_scale_for_a_particular_zoom_level_of_the_map.3F

주석

  • 축척은 실제로 생성 된지도 이미지의 DPI에 의존합니다. 가장 일반적으로 사용되는 두 가지 해상도는 96DPI (Google지도 타일이 ‘)와 72DPI입니다.
  • 96DPI를 사용하는 경우 배율은 는이 답변에 따라 레벨 0입니다. 하지만 @CaptDragon에 따르면 레벨 1입니다. Google지도로 계산하려면 레벨 1부터 시작해야합니까?

답변

쉽지 않습니다. 투영이 주어지면 타일 픽셀의 크기는 관심 영역의 위도에 따라 달라집니다. 그런 다음 화면 픽셀 크기에서 타일 픽셀 크기를 변환하는 측면에서 데이터가 표시되는 화면과 해상도에 따라 달라집니다. 화면에서 사용하는 dpi입니다.

댓글

답변

직진 신뢰할 수있는 정답 :

591657550.500000 / 2^(level-1) 

위의 표에 확대 / 축소 수준을 입력합니다.

jsfiddle.net

질문은 EARTH가 아닌 Google MAPS에만 해당되므로 OP는 3D 지오메트리에 관심이 없습니다. Google지도는 이미 평평 해져 있으므로 1 픽셀은 항상 동일한 거리 (Google지도와 관련된 DEGREES), 여기와 ecuator에서 극과 동일합니다.

그런데, 그렇습니까? 세계지도의 첫 번째 픽셀 행 내부 어딘가에 축척이 1 : 1이라는 것을 알고 있습니까?

댓글

  • 숫자는 591657550.500000 대표?
  • @Sergio 왜 591657550.5가 아닌가?
  • “이 숫자는 배수로 설정된 타일 해상도에서 나옵니다. 256 픽셀, 화면 해상도 (96dpi) ” gis.stackexchange.com/a/111589/ 92997
  • 작동하지 않음-Latitude에 따라 다르지만 수식이 아닙니다

답변

Microsoft의 Virtal Earth Tile System 문서 에 이러한 표가 있습니다. 그러나 GuillaumeC에서 말했듯이 값은 위도 및 화면 해상도. 이 표는 적도 및 96dpi의 화면 해상도에서 측정 된 값을 제공합니다.

PS : 확실하지 않지만 Microsoft의 확대 / 축소 수준은 확대 / 축소 수준과 비교하여 1 씩 이동할 수 있습니다. 구글.하지만 값이 Google에 올바르게 유지되도록 동일한 투영법을 확실히 사용합니다.

Answer

Radius @ Equator 6,378,137 미터 정확 ( WGS-84)

적도의 원주 = 40,075,017 미터 (2πr)

줌 레벨 24는 원주에서 2의 32 배 (4,294,967,296) 픽셀을 사용합니다.

적도 둘레 / 2 32 = 픽셀 당 .009330692 미터

위도 단위 = (위도 코사인) X (적도 단위)

확대 수준은 각 증분의 두 배입니다.

1 피트 (국제) = 0.3048 미터

편집

사실 시작하기에 합법적 인 질문은 아닙니다. 배율은 컴퓨터 화면이 아닌 인쇄 된 문서를 기준으로합니다. 이러한 이미지를 정확하게 사용하기 위해 필요한 것은 각 픽셀의 크기를 파악한 다음 오버레이에 따라 이미지의 크기를 조정하는 것입니다.

15-20 년 전에 누군가 WGS- 84를 기본 데이터로 사용합니다. (이전 게시물에서 누군가가 40,075,160의 값을 사용했음을 참고하십시오. 위키피디아에서 이것을 몇 군데 보았지만 올바르지 않습니다. 올바른 값은 40,075,017입니다.

그런 다음이를 가져 와서 전체 값으로 나눕니다. 32 비트 정수입니다. 이것은 항공 이미지에 충분한 약 1cm까지 전역 정확도를 제공하므로 논리적 선택입니다. 32 비트 정수도 저장 및 처리에 효율적입니다.

이것이 레벨 24가 선택된 이유 하지만 여기에서 다른 사람이 해결 했으므로 0은 지구에 대해 256 픽셀 타일로 내려갑니다.

이제 위의 데이터를 사용하는 방법의 예입니다. 이미지가 있다고 가정 해 보겠습니다. 확대 / 축소 수준 20에서 (현재 가능한 확대 / 축소) 0.009330692 (적도에서 24 확대)를 사용하여 확대 / 축소 23에 대해 두 배, 다시 확대 / 축소 22에 대해, 다시 확대 / 축소 21에 대해 다시 한 번 확대 / 축소 20에 대해 마지막으로 하나를 가져옵니다. 이제 0.149231071이 있어야합니다. .

이제 이미지가 위도 45에 있다고 가정 해 봅시다. 코사인 (0.707106781)에 0.149231071을 곱하면 0.105564729 미터가됩니다. 에스. 이는 확대 / 축소 수준 20에서 위도 45도에있는 이미지의 1 픽셀 길이와 높이입니다. 해당 영역의 1000 x 1000 픽셀 이미지를 화면 캡처하면 크기는 105.56m2입니다. 발을 0.3048로 나누고 싶다면

저는 약 5 년 전에 Google과 MS 매핑 지원 사이트를 포함하여 웹에서 찾은 다양한 정보와 문서에서 필자의 리버스 엔지니어를 역 설계했습니다.

나는이 백 번의 시간을 사용하고 실제로 현장 측량 데이터와 오버레이했으며 항상 정확했습니다. 여기에 게시 된 표와 비교하여 확인하면 숫자가 일치합니다.

댓글

  • I ‘이 질문에 대한 답변이 무엇인지 잘 모르겠습니다.
  • @Devdatta에 동의합니다. 출처와 맥락을 제공해 주시겠습니까?
  • 이러한 의견이 질문의 전후인지 확실하지 않습니다. 편집했지만이 답변을 사용했으며 훌륭하게 작동합니다.

Answer

몇 가지 계산을 수행하고 다음을 얻었습니다. 결과 :

Google지도는 확대 / 축소 수준 13에서 길이가 90 픽셀 인 1km 눈금자 (지도의 왼쪽 하단)를 표시합니다. 이는 다음을 의미합니다.

화면 해상도 가정 96dpi 또는 36dpcm, 확대 / 축소 수준 13에서 0.4km (36/90에서)는 1cm로 96dpi 화면에 대해 1 : 40,000의지도 축척을 산출합니다.

화면에서 다양한 작업을 수행 할 수 있습니다. 모든 숫자는 모든 줌 레벨에서 반올림되므로 가장 좋은 방법은 90px를 기준으로하는 것입니다. 즉

  • 줌 레벨 12 : 90px에서 2km
  • 줌 레벨 l 11 : 90px에서 4km
  • 줌 레벨 10 : 90px에서 8km

등.

이 값은 큰 스케일보다는 작은 스케일에서 어느 정도 잘 작동합니다.

(Google은 결국 반올림을 좋아합니다 …)

댓글

  • 자세히 살펴보면 ‘ 지역의 위도에 따라 선의 길이가 변한다는 것을 알 수 있습니다. ‘보고 있습니다.
  • @rcoup이 언급했듯이 특정 위도에서만 유효합니다. 스케일 바의 길이뿐만 아니라 그것이 나타내는 거리도 다양합니다. 확대 / 축소 13에서이 예를 계속하려면 축척 막대가 나타내는 거리가 노스케이프에서 2km (위도 71 °), 약 45 ° 위도 및 적도에서 500m.

답변

제공된 모든 정보를 기반으로 함 , 표시되는지도의 N %를 나타내는 수평선을 원할 때지도에 적용되는 최상의 z를 제공하는 기능을 구축했습니다.

표시되는지도는 자체 픽셀 너비가 특징입니다.

 function calculateZoom(WidthPixel,Ratio,Lat,Length){ // from a segment Length (km), // with size ratio of the segment expected on a map (70%), // with a map WidthPixel width in pixels (100px), // and a latitude (45°) we can get the best Zoom // assume earth is a perfect ball with radius : 6,378,137m and // circumference at the equator = 40,075,016.7 m // The full world on google map is available in tiles of 256 px; // it has a ratio of 156543.03392 (px/m). // For Z = 0; // pixel scale at the Lat_level is ( 156543,03392 * cos ( PI * (Lat/180) )) // The map scale increases at the rate of square root of Z. // Length = Length *1000; //Length is in Km var k = WidthPixel * 156543.03392 * Math.cos(Lat * Math.PI / 180); //k = circumference of the world at the Lat_level, for Z=0 var myZoom = Math.round( Math.log( (Ratio * k)/(Length*100) )/Math.LN2 ); myZoom = myZoom -1; // Z starts from 0 instead of 1 //console.log("calculateZoom: width "+WidthPixel+" Ratio "+Ratio+" Lat "+Lat+" length "+Length+" (m) calculated zoom "+ myZoom); // not used but it could be useful for some: Part of the world size at the Lat MapDim = k /Math.pow(2,myZoom); //console.log("calculateZoom: size of the map at the Lat: "+MapDim + " meters."); //console.log("calculateZoom: world circumference at the Lat: " +k+ " meters."); return(myZoom); }  

답변

아직 댓글을 추가 할 수 없지만 위의 Pete의 답장에 대한 가능한 소스입니다. https://developers.google.com/maps/documentation/javascript/maptypes#MapCoordinates

[…] 증가하는 각각의 확대 / 축소 수준은 x 및 y 방향 모두에서 두 배입니다. 따라서 각각의 높은 확대 / 축소 수준에는 이전 수준보다 4 배 많은 해상도가 포함됩니다. 예를 들어 확대 / 축소 수준 1에서지도는 4 개의 256×256 픽셀 타일로 구성되어 512×512의 픽셀 공간이됩니다. 확대 / 축소 수준 19에서지도의 각 x 및 y 픽셀은 0에서 256 * 2 사이의 값을 사용하여 참조 될 수 있습니다. 19

답변

4 개의 확대 / 축소 수준에 대한 배율을 계산했습니다.

확대 수준 | 스케일 20 1 : 500 19 1 : 1000 18 1 : 2000 17 1 : 4000

줌 레벨이 한 단계 올라감에 따라 스케일이 두 배가되는 것 같습니다. 따라서 확대 / 축소 수준 16의 배율이 1 : 8000 등이되기를 바랍니다.

댓글

  • GIS.SE에 오신 것을 환영합니다! 출처 또는 계산 방법을 제공해 주시겠습니까?

답변

안녕하세요. 1 픽셀 = 11.627km (직선) 지구의 반경을 고려하지 않았습니다. 방법을 설명하는 동영상 링크 : https://www.youtube.com/watch?v=Y3cvTeiMJqE&feature=youtu.be 마음이 깨끗해지기를 바랍니다.

댓글

  • 그렇지 않습니다. 픽셀의 값은 위도에 따라 다릅니다.
  • 알겠습니다. 그렇게 복잡하지는 않습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다