【发布时间】:2012-01-26 21:23:19
【问题描述】:
我正在阅读website 中的解决方案 3 (2D),并尝试将其转换为 java 代码。如果java是正确的,请评论。我使用的是纬度和经度坐标,而不是 x 和 y 坐标(注意:loc.getLongitude(),loc.getLatitude() 是在矩形内检查的点集,并且给定坐标(双精度)不是真实坐标还没有。
double lat0 = 0.2;
double long0 = 0.3;
double lat1 = 1.2;
double long1 = 1.3;
double lat2 = 1.2;
double long2 = 1.3;
double lat3 = 1.2;
double long3 = 1.3;
double rel1 = (loc.getLongitude()- long0)*(lat1 - lat0)- ((loc.getLatitude()-lat0)*(long1-long0));
double rel2 = (loc.getLongitude()- long1)*(lat2 - lat1)- ((loc.getLatitude()-lat1)*(long2-long1));
double rel3 = (loc.getLongitude()- long2)*(lat3 - lat2)- ((loc.getLatitude()-lat2)*(long3-long2));
double rel4 = (loc.getLongitude()- long3)*(lat0 - lat3)- ((loc.getLatitude()-lat3)*(long0-long3));
if (rel1 >= 0 && rel2 >= 0 && rel3 >= 0 && rel4 >= 0 )
{
try
{
..........
..........
}
else
{
.........
}
}
【问题讨论】:
-
错误 - 尝试没有 catch 块。代码审查的更好候选人。
-
那是正确的......我认为它是在点上:)
标签: java android latitude-longitude