1
私は中心座標から特定の縮尺でバウンディングボックスを作成しようとしています。私はそれを8.5x11インチの紙のアスペクト比(612x792ピクセル@ 72dpi)に収めようとしています。中心座標からバウンディングボックスを作成
私が使用しているコードは主に動作しますが、高さは手紙のアスペクト比が高すぎます。メルケータの計画を説明していないのですか?私はここで何が欠けていますか?
でbounding_box_from_point(center: center, size: size, scale_denominator: scale)
を呼び出す
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
:それは返す
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インチの紙の...それはやや大きすぎます。私はここで間違っているのか、理解していないのですか?
赤道から遠ざかるにつれて、経度線が近づくという点で、メルカトル図法の投影はあまりありません。あなたのマップはあまりにも痩せすぎて、あまりにも痩せていません –
http://stackoverflow.com/a/2913249/4504607 –
@RonJensenを参照してください。これはどのように調整しますか? – theartofbeing