java 坐标转换_java – 将图像X,Y坐标转换为经度和纬度?
我设置了特定静态地图图像的最小经度和纬度值.那张地图图片是某个国家的剪影.
/**
* Maximum longitude value of the map
*/
private float mapLongitudeMax;
/**
* Minimum longitude value of the map
*/
private float mapLongitudeMin;
/**
* Maximum latitude value of the map
*/
private float mapLatitudeMax;
/**
* Minimum latitude value of the map
*/
private float mapLatitudeMin;
我有一个名为mapImage的BufferedImage.
我有一个我和朋友一起写的方法,它接收经度和纬度,并在地图上给你一个X和Y位置,这样你就可以在地图上绘制一些东西.
现在,如果我想在地图上移动鼠标,我希望它显示我的鼠标位置的经度/纬度,这意味着我需要创建一个方法,将鼠标位置的X和Y转换为经度和纬度,这应该做与我的另一种方法相反.
这是我将地球坐标转换为图像X和Y的方法:
protected Location getCoordinatesByGlobe(float latitude,float longitude) {
/**
* Work out minimum and maximums,clamp inside map bounds
*/
latitude = Math.max(mapLatitudeMin,Math.min(mapLatitudeMax,latitude));
longitude = Math.max(mapLongitudeMin,Math.min(mapLongitudeMax,longitude));
/**
* We need the distance from 0 or minimum long/lat
*/
float adjLon = longitude - mapLongitudeMin;
float adjLat = latitude - mapLatitudeMin;
float mapLongWidth = mapLongitudeMax - mapLongitudeMin;
float mapLatHeight = mapLatitudeMax - mapLatitudeMin;
float mapWidth = mapImage.getWidth();
float mapHeight = mapImage.getHeight();
float longPixelRatio = mapWidth / mapLongWidth;
float latPixelRatio = mapHeight / mapLatHeight;
int x = Math.round(adjLon * longPixelRatio) - 3;// these are offsets for the target icon that shows.. eedit laterrr @oz
int y = Math.round(adjLat * latPixelRatio) + 3; //
// turn it up
y = (int) (mapHeight - y);
return new Location(x,y);
}
现在我试着思考,第一个进入脑海中的想法就是反过来做同样的事情…所以我开始这样做,我遇到了类似的问题,我没有经度就得到adjLon或adjLat的值或纬度,所以这不能简单地通过反转来完成.我对坐标系统都很陌生,所以对我来说有点混乱,但我开始追上它.
有什么提示吗?
编辑(不可能?)
根据this answer,你不可能真正得到真实的结果,因为地球不是平坦的,它不能真正转换成具有经度和纬度的平面地图而不实施真正的数学算法以使其适应变化.
我的代码中有几个原因导致答案不准确:
>由于上述原因
>因为我的X,Y值是整数而不是浮点数.
所以现在我的问题是,如果我的方法真的不可能吗?
java 坐标转换_java – 将图像X,Y坐标转换为经度和纬度?相关推荐
- java地理坐标转屏幕_(转)经纬度坐标转换为屏幕坐标
经纬度坐标转换成屏幕坐标 地理坐标定义规则:X轴(代表经度)向右递增,Y轴(纬度)向上递增,就好比小学学过的平面坐标.向左.向下的规则.屏幕坐标定义规则:X轴向右递增,Y轴向下递增. 可以看出,地理坐 ...
- java 坐标_java – 存储X和Y坐标
您好我是这个网站的新手,需要帮助我正在努力的程序.我遇到的问题是我似乎无法存储字符串和两个整数(作为坐标).我查看了其他代码,但没有看到值的存储方式.下面是我一直在使用的代码.代码似乎没问题,但在尝试 ...
- iOS-地理坐标转换,原生地图获取的原始坐标转换为地图真实坐标
GPS以及iOS系统定位获得的坐标是地理坐标系WGS1984,Web地图一般用的坐标细是投影坐标系WGS 1984 Web Mercator,国内出于相关法律法规要求,对国内所有GPS设备及地图数据都 ...
- php计算两个坐标(经度,纬度)之间距离
<?phpclass Distance {const EARTH_RADIUS_AVG = (6378137 + 6356752.3142) / 2;//地球半径 平均值,单位米/*** 参数: ...
- php计算两个坐标(经度,纬度)之间的方位角
<?php class Angle {/*** @param $d 转化为弧度(rad)* @return float*/public function rad($d){return $d * ...
- java 坐标转换工具类(很全面哦!wgs84.... gcj02(即火星坐标).... )
今天给大家分享一个java实现的地图坐标系经纬度转换工具类 /** Copyright (c). All rights reserved.* Use is subject to license ter ...
- Java黑皮书课后题第10章:10.4(MyPoint类)设计一个名为MyPoint的类,代表一个以x坐标和y坐标表示的点
10.4(MyPoint类)设计一个名为MyPoint的类,代表一个以x坐标和y坐标表示的点 题目 程序 代码 Test4.java Test4_MyPoint.java 运行实例 UML 题目 程序 ...
- Java黑皮书课后题第3章:**3.28(几何:两个矩形)编写一个程序,提示用户输入两个矩形中心的x坐标和y坐标以及矩形的宽度和高度,然后判断第二个矩形是在第一个矩形内,还是和第一个矩形重叠
**3.28(几何:两个矩形)编写一个程序,提示用户输入两个矩形中心的x坐标和y坐标以及矩形的宽度和高度,然后判断第二个矩形是在第一个矩形内,还是和第一个矩形重叠 题目 题目概述 运行示例 破题 代码 ...
- Java黑皮书课后题第3章:**3.27(几何:点是否在三角形内)假设一个平面上有一个直角三角形。编写程序,提示用户输入一个点的x坐标和y坐标,然后判断这个点是否在该三角形内
**3.27(几何:点是否在三角形内)假设一个平面上有一个直角三角形.编写程序,提示用户输入一个点的x坐标和y坐标,然后判断这个点是否在该三角形内 题目 题目描述 破题 运行示例 代码 题目 题目描述 ...
- numpy 用于图像处理(灰度图、转置、通道分离、图像扩展、水平镜像、水平翻转、调换x,y坐标、添加mask、随机打乱顺序、交换通道)
目录 numpy 用于图像处理 1. 转换为灰度图 2. 转置 3. 画出三个通道的彩图 4. 图像扩展 5. 水平镜像 --- 交换行 6. 水平翻转 --- 交换列 7. 调换x,y坐标 8. 添 ...
最新文章
- 关于亿级账户数据迁移,你应该试试这种方法...
- mysql 万亿数据_sql-server – 哪个数据库可以处理数十亿/数万亿条记录的存储?...
- Open Source Web Design!
- P2153 晨跑,费用流裸题
- python哪些类型可以作为迭代器_python0.8-----set类型与迭代器
- [转] WinForm自定义函数FindControl实现按名称查找控件
- mysql maratadb_Mysql/Mairadb主从复制
- .vue文件 转换成html,在vue中把含有html标签转为html渲染页面的实例
- C#复制文件夹下的所有内容到另一个文件夹
- C语言_报数问题:有n个人围成一圈,顺序从零排号。从第一个人开始报数(从1到3报数),凡报到3的人 退出圈子,问最后留下的是原来第几号的那位。
- 2019-不得不了解的前端趋势
- 服务器收到syn包不回消息,TCP:SYN请求接收SYN响应代替SYN-ACK
- springboot集成快递100实现查询快递,面单打印;面单取消
- 计算机word文本段落位置互换,word中调换位置 用word怎么使两个段落互换位置
- shell base64 会自动换行问题
- Linux登录输入密码后返回登录界面
- mysql造1000万数据_MySQL制作具有千万条测试数据的测试库
- python画图颜色填充_Python使用Turtle图形函数画图 颜色填充!(学习笔记)
- 4G网络数据传输流程 三
- linux 下写不了文件,linux下用root为什么写不了windows下的文件