1
我試圖從中心座標以特定比例創建邊界框。我試圖將其保持在8.5x11英寸紙張(612x792像素@ 72dpi)的寬高比內。從中心座標創建邊界框
我在下面使用的代碼主要是作品,但高度似乎有點過高,一個字母的長寬比。我沒有考慮mercator投影嗎?我在這裏錯過了什麼?
def bounding_box_from_point(center:, size:, scale_denominator:)
dpi = 72
inches_per_unit = 4374754
resolution = 1/(scale_denominator * inches_per_unit * dpi)
half_width_deg = (size.width * resolution)/2
half_height_deg = (size.height * resolution)/2
BoundingBox.new(
north: center.lat + half_height_deg,
south: center.lat - half_height_deg,
east: center.lon + half_width_deg,
west: center.lon - half_width_deg
)
end
調用bounding_box_from_point(center: center, size: size, scale_denominator: scale)
有:
scale = 0.0008861342166177423 (i.e. 1/18055.955520)
center = Geometry::Location.new(lat: 37.806336, lon: -122.270625)
size.width = 612,
size.height = 792
它返回:
west: -122.27172131608657,
east: -122.26952868391342,
south: 37.804917238005615
north: 37.80775476199439
如果你去http://www.openstreetmap.org/export和輸入這些邊界框座標,你可以看到,比例不匹配一張8.5x11英寸的紙......它稍微高一點。我在這裏做錯了什麼或不理解?
它不像墨卡託投影那麼重要,因爲當你離開赤道時,經線距離越近越好。你的地圖不是太高,太瘦了, –
@RonJensen請看http://stackoverflow.com/a/2913249/4504607 –
那麼你如何調整呢? – theartofbeing