Tỷ lệ thu phóng của Google Maps tương ứng với tỷ lệ nào?


83

Bất cứ ai cũng có thể cung cấp cho tôi một liên kết (hoặc một số chi tiết) về tỷ lệ thực tế với số liệu "mức thu phóng" cho Google Maps?

ví dụ: Google Maps Cấp 13 = 1: 20000


1
Dựa trên thông tin đầu tiên tôi thực hiện chức năng này, có lẽ ai đó có thể sử dụng nó! hàm setZoomLevel (mét) {//console.log ( Zoom level set meters: ${meters}); var zoomfactor = 1; if (mét <1128) {zoomfactor = 15; } if if ((mét> 1128) && (mét <2256)) {zoomfactor = 14; } if if ((mét> 2256) && (mét <4513)) {zoomfactor = 13; } if if ((mét> 4513) && (mét <9027)) {zoomfactor = 12; } khác if ((mét> 9027) && (mét <18055)) {zoomfactor = 11; } if if ((mét> 18055) && (mét <36111)) {zoomfactor = 10; } khác nếu ((mét> 36111) && (mét <72
Friis1978

Câu trả lời:


79

Nếu bạn đang thiết kế bản đồ mà bạn dự định phủ lên bản đồ google hoặc trái đất ảo và tạo sơ đồ ốp lát thì tôi nghĩ những gì bạn đang tìm kiếm là tỷ lệ cho mỗi mức thu phóng, hãy sử dụng những điều sau:

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

Nguồn: http://webhelp.esri.com/arcgisserver/9.3/java/index.htm#designing_overlay_gm_mve.htmlm


2
@capdragon Cảm ơn. Đó là một nguồn nổi tiếng (ESRI) nhưng nó khiến chúng tôi vẫn tự hỏi làm thế nào họ đưa ra các thang đo này.
whuber

4
Hợp lý là quan trọng đối với ai? Tôi không thấy bất kỳ đề cập đến hợp lý trong câu hỏi. Tôi tin rằng anh ấy muốn một câu trả lời thẳng về câu hỏi thẳng của mình.
CaptDragon

4
@cap Không có lý do, thật khó hoặc không thể phân biệt một câu trả lời đúng với một câu trả lời sai. Không có lý do, người ta phải dựa vào thẩm quyền của người trả lời. Tôi khá chắc chắn rằng lý do các câu trả lời khác trong chủ đề này đang được bỏ phiếu và bạn không liên quan gì đến tính chính xác hay sự thẳng thắn - bạn là người có thẩm quyền và thẳng thắn nhất trong nhóm - nhưng có tất cả mọi thứ để làm với lý luận được cung cấp bởi những người khác. BTW Tôi đã không đánh giá thấp của bạn.
whuber

3
Cảm ơn: +1. Các bạn có lẽ là các nhà địa lý hoặc các bậc thầy viễn thám. Tôi chỉ đơn thuần là một nhà phát triển GIS muốn giúp anh chàng đạt được câu trả lời của mình. Một đồng nghiệp của tôi (loại PHD, gấp đôi chuyên ngành MIT) đi vào một giờ giảng mỗi khi tôi hỏi anh ta một câu hỏi đơn giản và mất tôi trên đường đi. Tôi không hỏi anh ta câu hỏi nữa (tôi có bằng thạc sĩ khoa học). Tôi hiểu rằng những người khác thích ăn sâu vào lý trí và vân vân, nhưng nhiều người trong chúng ta quá thờ ơ để biết họ đang nói về cái gì. IMHO họ đã trả lời nhầm lẫn mà không trả lời câu hỏi của anh ấy.
CaptDragon

10
Các thang đo đã được chọn sao cho chúng có thể được chia đều cho các gạch raster nằm trong cơ sở 2, (ví dụ: 128, 512 ...). Bing thực hiện tương tự msdn.microsoft.com/en-us/l Library / bb259689.aspx
Hội trường Garrett

44

Tôi đã tìm thấy phản hồi này - được viết bởi một nhân viên Google - đây có thể là câu trả lời chính xác nhất:

Điều này sẽ không chính xác, bởi vì độ phân giải của bản đồ với phép chiếu Mercator (như bản đồ Google) phụ thuộc vào vĩ độ.

Có thể tính toán bằng công thức này:

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

Điều này dựa trên giả định rằng bán kính trái đất là 6378137m. Đó là giá trị chúng tôi sử dụng :)

lấy từ: https://groups.google.com/forum/#!topic/google-maps-js-api-v3/hDRO4oHVSeM

BTW - Tôi đoán rằng:

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

Điều gì bằng công thức của bạn? Làm điều đó cho lat = 2,92 và phóng to 13 Tôi nhận được 19,08. 19,08 là gì?
Rodrigo

4
@Rodrigo mét trên mỗi pixel
Justin Poehnelt

3
Tôi có thể làm chứng rằng câu trả lời này vẫn đúng và rất chính xác ba năm sau. Đây phải là câu trả lời được chấp nhận.
Giăng

Điều này áp dụng cho x chỉ hoặc y ? Google Maps thông qua API Javascript có sử dụng cùng một tỷ lệ cho cả hai trục không?
Geezer cũ

@OldGeezer Có nó hoạt động theo mọi hướng. Biến dạng tuyến tính tại bất kỳ điểm nào trong Mercator đều bằng nhau theo mọi hướng. Đó là một trong những lý do nó được sử dụng cho bản đồ slippy. Khi bạn phóng to cách, bạn sẽ có được một bản đồ biến dạng thấp hợp lý. một khi bạn bù cho quy mô, đó là những gì câu trả lời này làm.
smithkm

30

Để giúp bạn hiểu các phép toán (không phải là một phép tính chính xác, nó chỉ mang tính minh họa):

  • Bản đồ web của Google có 256 pixel chiều rộng
  • giả sử màn hình máy tính của bạn có 100 pixel mỗi inch (PPI). Điều đó có nghĩa là 256 pixel có chiều dài khoảng 6,5 cm. Và đó là 0,065 m .

  • mức thu phóng 0 , toàn bộ kinh độ 360 độ có thể nhìn thấy trong một ô duy nhất . Bạn không thể quan sát điều này trong Google Maps vì nó tự động chuyển sang mức thu phóng 1, nhưng bạn có thể thấy nó trên bản đồ của OpenStreetMap (nó sử dụng cùng một sơ đồ ốp lát).

  • Suy thoái 360 trên đường xích đạo bằng với chu vi của Trái đất, 40.075,16 km, là 40075160 m

  • chia 40075160 m với 0,065 m và bạn sẽ nhận được 616313361 , đây là thang đo mức thu phóng 0 trên Xích đạo cho màn hình máy tính có 100 DPI

  • vì vậy, vấn đề là thang đo phụ thuộc vào PPI của màn hình và vào vĩ độ (vì phép chiếu Mercator)
  • đối với mức thu phóng 1, tỷ lệ là một nửa so với mức thu phóng 0
  • ...
  • đối với mức thu phóng N, tỷ lệ là một nửa so với mức thu phóng N-1

Ngoài ra hãy xem: http://wiki.openstreetmap.org/wiki/FAQ#What_is_the_map_scale_for_a_particular_zoom_level_of_the_map.3F


3
Tỷ lệ thực sự dựa vào DPI của hình ảnh bản đồ được tạo. Hai độ phân giải được sử dụng phổ biến nhất là 96DPI (đó là gạch bản đồ của Google) và 72DPI.
Sasa Ivetic

Với 96DPI, thang đo 591657550.500000là Mức 0 theo câu trả lời này. Nhưng theo @CaptDragon là Cấp 1. Tôi nên xem xét bắt đầu từ cấp 1 để tính toán với Google Maps?
Douglas Nassif Roma Junior

17

Không dễ. Với phép chiếu, kích thước của pixel pixel phụ thuộc vào vĩ độ của khu vực bạn quan tâm. Sau đó, về mặt chuyển đổi kích thước pixel của gạch theo kích thước pixel màn hình, nó phụ thuộc vào màn hình và độ phân giải của dữ liệu được hiển thị, dpi màn hình của bạn đang sử dụng.


2
Điều đó là chính xác, công cụ đánh bóng hình cầu (hình chiếu google) không bảo toàn tỷ lệ bằng nhau khi bạn rời khỏi đường xích đạo. Đối với một số tài liệu tham khảo tuyệt vời: Bài viết về mẫu số tỷ lệtỷ lệ của Mapnik : trac.mapnik.org/wiki/ScaleAndPpi và cả Câu hỏi thường gặp của OSM: wiki.openstreetmap.org/wiki/iến
quản lý

12

Câu trả lời đúng có thẩm quyền:

591657550.500000 / 2^(level-1)

nó cung cấp cho bạn bảng ở trên, nhập mức thu phóng.

Dùng thử trực tiếp trên jsfiddle.net

Vì câu hỏi chỉ dành cho Google MAPS, không phải EARTH, OP không quan tâm đến hình học 3D. Các bản đồ của Google luôn được làm phẳng để 1 pixel luôn có cùng khoảng cách (trong DEGREES, đó là điều cần quan tâm đối với bản đồ google), ở đây và trong bộ sinh thái như ở các cực.

Nhân tiện, bạn có nhận ra rằng ở đâu đó bên trong hàng pixel đầu tiên trên bản đồ thế giới, tỷ lệ là 1: 1 không?


5
Số 591657550.500000 đại diện cho cái gì?
Justin thân mến

2
@Sergio tại sao không chỉ 591657550.5?
Birowsky

2
"Con số đến từ độ phân giải lát được đặt ở bội số 256 pixel và từ độ phân giải màn hình (96dpi)" gis.stackexchange.com/a/111589/92997
juffel

Không hoạt động - nó phụ thuộc vào Latitude, nhưng công thức của bạn thì không
Evgenii Vorobei

9

Có một bảng như vậy trong tài liệu của Hệ thống Ngói Trái đất Virtal từ Microsoft . Nhưng như GuillaumeC đã nói, các giá trị phụ thuộc vào vĩ độ và độ phân giải màn hình. Bảng đưa ra các giá trị như được đo tại Xích đạo và ở độ phân giải màn hình 96 dpi.

PS: Không chắc về điều đó, nhưng các mức thu phóng của Microsoft có thể bị thay đổi 1 so với các mức thu phóng của Google. Nhưng họ chắc chắn sử dụng cùng một phép chiếu để các giá trị vẫn đúng cho Google.


7

Bán kính @ Xích đạo chính xác 6.378.137 mét (WGS-84)

Chu vi tại Xích đạo = 40.075.017 mét (2πr)

Thu phóng cấp 24 sử dụng 2 đến 32 pixel (4.294.967.296) pixel theo chu vi.

Chu vi xích đạo / 2 32 = .009330692 mét trên mỗi pixel

Đơn vị tại Latitude = (Cosine of Latitude) X (Đơn vị tại Xích đạo)

Mức thu phóng tăng gấp đôi mỗi lần tăng.

1 feet (Quốc tế) = 0,3048 mét

Biên tập

Vâng, nó không thực sự là một câu hỏi chính đáng để bắt đầu. Tỷ lệ tỷ lệ có liên quan đến tài liệu in không phải màn hình máy tính. Những gì bạn cần cho những hình ảnh này được sử dụng với bất kỳ độ chính xác nào là để biết kích thước của từng pixel sau đó chia tỷ lệ hình ảnh theo bất cứ thứ gì bạn phủ lên nó.

Vì vậy, trở lại 15-20 năm trước, ai đó đã lấy WGS-84 làm dữ liệu cơ sở. (lưu ý trong bài viết trước, ai đó đã sử dụng giá trị 40.075.160 Tôi đã thấy điều này trên Wikipedia một vài nơi và nó không chính xác. Giá trị đúng là 40.075.017

Sau đó, họ lấy nó và chia cho số nguyên 32 bit đầy đủ. Đây là một lựa chọn hợp lý vì nó mang lại độ chính xác toàn cầu đến khoảng một centimet, rất nhiều cho hình ảnh trên không. Số nguyên 32 bit cũng hiệu quả để lưu trữ và xử lý.

Tại sao đây là cấp 24 được chọn Tôi không biết tuy nhiên vì một người khác ở đây đã làm việc 0 đưa bạn xuống một ô 256 pixel cho trái đất.

Bây giờ cho một ví dụ về cách sử dụng dữ liệu trên. Hãy nói rằng tôi có một hình ảnh ở mức thu phóng 20 (như thu phóng như hiện tại cho phép bạn nhận được) Lấy 0,009330692 (Thu phóng 24 ở xích đạo) nhân đôi nó cho thu phóng 23, một lần nữa cho thu phóng 22, một lần nữa cho thu phóng 21 và một lần cuối cho thu phóng 20 Bây giờ bạn sẽ có 0.149231071.

Bây giờ hãy nói rằng hình ảnh của chúng tôi ở vĩ độ 45. Lấy Cosine của điều đó (0,707106781) và nhân nó với 0,149231071 của chúng tôi và nó sẽ cung cấp cho bạn 0,105564729 mét. Đó là chiều dài và chiều cao của một pixel từ một hình ảnh ở vĩ độ 45 ở mức thu phóng 20. Nếu màn hình của bạn chụp một hình ảnh 1000 x 1000 pixel của khu vực đó thì kích thước là 105,56 mét vuông. Nếu bạn muốn chia đôi chân đó 0,3048

Đối với các nguồn, tôi đã đảo ngược kỹ sư khoảng 5 năm trước từ nhiều thông tin và tài liệu khác nhau mà tôi tìm thấy trên web bao gồm các trang web hỗ trợ lập bản đồ của Google và MS.

Tôi đã sử dụng hàng trăm thời gian này và phủ nó với dữ liệu khảo sát thực tế và nó luôn luôn chính xác. Kiểm tra nó với bất kỳ bảng nào được đăng ở đây và các con số sẽ khớp.


2
Tôi không chắc làm thế nào điều này trả lời câu hỏi.
Devdatta Tengshe

Tôi đồng ý với @Devdatta, bạn có thể vui lòng cung cấp một nguồn và một số bối cảnh.
Aaron

Không chắc những bình luận này là trước hay sau khi chỉnh sửa, nhưng tôi đã sử dụng câu trả lời này và nó hoạt động rất tốt
bjnortier

4

Chỉ cần thực hiện một số tính toán và nhận được kết quả sau đây:

Google Maps hiển thị thước kẻ 1km (phía dưới bên trái của bản đồ) có chiều dài 90 pixel, ở mức thu phóng 13. Có nghĩa là như sau:

Giả sử độ phân giải màn hình là 96 dpi hoặc 36 dpcm, ở mức thu phóng 13, chúng ta có 0,4km (từ 36/90) trong 1cm, mang lại tỷ lệ bản đồ 1: 40.000 cho màn hình 96dpi.

Đối với các hoạt động khác nhau trên màn hình, tốt nhất là lấy 90px làm cơ sở, vì tất cả các số sẽ được làm tròn ở tất cả các mức thu phóng, tức là

  • Thu phóng mức 12: 2km ở 90px
  • Thu phóng cấp 11: 4km ở 90px
  • Thu phóng cấp 10: 8km ở 90px

vân vân

Lưu ý rằng đây là một xấp xỉ nên hoạt động tốt hơn hoặc ít hơn trên quy mô nhỏ hơn là quy mô lớn.

(Và Google thích số tròn cuối ...)


1
Nếu bạn quan sát kỹ, bạn sẽ phát hiện ra rằng độ dài của đường thay đổi tùy thuộc vào vĩ độ của khu vực bạn đang xem.
RCoup

1
Điều này chỉ hợp lệ ở một vĩ độ cụ thể, như @rcoup đã đề cập. Không chỉ chiều dài của thanh tỷ lệ khác nhau, mà khoảng cách nó đại diện quá. Để tiếp tục ví dụ này ở zoom 13, khoảng cách được biểu thị bằng thanh tỷ lệ là 2 km ở North Cape (vĩ độ 71 °), 1 km quanh vĩ độ 45 ° và 500 m ở vị trí không chuyên.
François

3

Dựa trên tất cả các thông tin được cung cấp, tôi đã xây dựng một hàm cung cấp z tốt nhất được áp dụng cho bản đồ khi bạn muốn có một đường ngang đại diện cho N% của Bản đồ được hiển thị.

Bản đồ được hiển thị được đặc trưng bởi chiều rộng pixel của chính nó.

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);
}

3

Tôi chưa thể thêm nhận xét nhưng đây là nguồn trả lời có thể có của Pete ở trên: https://developers.google.com/maps/documentation/javascript/maptypes#MapCoordins

[...] Lưu ý rằng mỗi mức thu phóng tăng dần lớn gấp đôi theo cả hai hướng x và y. Do đó, mỗi mức thu phóng cao hơn chứa độ phân giải gấp bốn lần so với mức trước đó. Ví dụ: ở mức thu phóng 1, bản đồ bao gồm 4 ô 256x256 pixel, dẫn đến không gian pixel từ 512x512. Ở mức thu phóng 19, mỗi pixel x và y trên bản đồ có thể được tham chiếu bằng cách sử dụng giá trị trong khoảng từ 0 đến 256 * 2 19


1

Tôi đã tính tỷ lệ cho bốn mức thu phóng:

Mức thu phóng | Tỷ lệ 20 1: 500 19 1: 1000 18 1: 2000 17 1: 4000

Có vẻ như tỷ lệ được nhân đôi khi mức thu phóng tăng thêm một bước. Vì vậy, tôi hy vọng tỷ lệ cho mức thu phóng 16 sẽ là 1: 8000, v.v.


3
Chào mừng bạn đến với GIS.SE! Bạn có thể vui lòng cung cấp một nguồn hoặc cách này được tính toán?
Paul

0

Xin chào Tôi nghĩ rằng tôi đã tính được rằng 1pixel = 11,627km theo đường thẳng; không tính đến bán kính trái đất. Đây là liên kết của video giải thích cách thức: https://www.youtube.com/watch?v=Y3cvTeiMJqE&feature=youtu.be . Hy vọng rằng rõ ràng tâm trí của bạn.


Nó không. Giá trị của một pixel phụ thuộc vào vĩ độ.
John Powell

Ồ tôi hiểu rồi, không phức tạp lắm tôi đi vào.
Ông Totardo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.