比如,你用mapx读入gst图 Map1.ConvertCoord转换成屏幕坐标 在根据屏幕坐标使用API Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long 转换成图片的相对坐标. 也就是说 你再mapx上选中2个点,那么这两个点在mapx上首先知道的是他的经纬度,根据这个经纬度,获取他图片上的坐标 比如图片大小是1000*800,那么经纬度(35.5,25,5)的点对应图片上坐标可能是(500,600),在根据另外一个点计算出的图片坐标可能是(550,650),那么截的图片就是(500,600)-(550,650)的一个矩形 Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long 可以把这个矩形截出来
你们的老板想法太牛了!! 几乎是不可能完成的事。你需要ZOOM大小、旋转角度、启始点....条件太多!还有一种解决办法告诉你们老板。花钱去卖googleMap的算法哈哈!!
不过现在这方面的资料还是有一些的,不过代码都是C++的
Map1.ConvertCoord转换成屏幕坐标
在根据屏幕坐标使用API
Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
转换成图片的相对坐标. 也就是说
你再mapx上选中2个点,那么这两个点在mapx上首先知道的是他的经纬度,根据这个经纬度,获取他图片上的坐标
比如图片大小是1000*800,那么经纬度(35.5,25,5)的点对应图片上坐标可能是(500,600),在根据另外一个点计算出的图片坐标可能是(550,650),那么截的图片就是(500,600)-(550,650)的一个矩形
Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
可以把这个矩形截出来