Convert x,y to latitiude and longitude

无人久伴 提交于 2020-05-17 07:45:11

问题


If I have a map image where:

  • The latitude and longitude of the upper left corner (x=0, y=0) are known
  • The width and height of the image is known
  • Zoom (z-axis) is known.

Can we compute the latitude and longitude for other coordinates in the image? For example, in the following image if I want to compute the lat/lon values for the white ploygon (where the coordinates (x,y) are known)


回答1:


So given the information and the shape of the image, (see previous question):

import numpy as np

top_left = np.array((32.0055597, 35.9265418))
bottom_right = np.array((33.0055597, 36.9265418))

delta = bottom_right - top_left

shape = (454, 394)[::-1] # convert from ij to xy coords

pixel_sizes = delta / shape

pixel_sizes * (80, 200) + top_left
>>> array([32.20860539, 36.36707043])

Gives the (x, y) or (longtiude, latitude) of your given point.

This approach can be generalised given a set of points using numpy as:

coords * pixel_sizes + top_left # coords is (N, 2) array

If coords is a tuple of arrays it can be converted to an (N,2) array using np.column_stack.



来源:https://stackoverflow.com/questions/61834901/convert-x-y-to-latitiude-and-longitude

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!