【发布时间】:2009-09-05 03:45:34
【问题描述】:
我有一点问题。我正在尝试使用 Javascript 和 Google Maps API v2 执行以下操作:
我可以使用在互联网上找到的公式很好地绘制单个圆圈。我面临的问题是圈子必须:
A.同心,并且 B. 每个“象限”必须有不同的半径,即 NE、NW、SE 和 SW
我几乎在 Internet 上搜索了我能想到的所有地方,但没有想出如何做到这一点。显然以前有人这样做过,因此我为什么要在程序员论坛上提问。 :)
谢谢!
更新:我已经使用以下代码绘制了我认为每个点的坐标。如下图:
这是使用以下 JS 获得的:
注意:此 javascript 来自(稍作修改)以下站点,该站点可能包含更多关于算法最终可能的答案:http://www.movable-type.co.uk/scripts/latlong.html
更新 2:我能够在 Google 地图中获得此信息:
使用以下代码创建:
var NEQ = [0, 90];
var SEQ = [90, 180];
var SWQ = [180, 270];
var NWQ = [270, 0];
// var centrePoint = new LatLon(25.0, -83.1);
// pointsForWindQuadrant(NEQ, centrePoint, 50);
function pointsForWindQuadrant(quadrantDegrees, centrePoint, radius){
var points = [];
// Points must be pushed into the array in order
points.push(new google.maps.LatLng(centrePoint.lat, centrePoint.lon));
for(i = quadrantDegrees[0]; i <= quadrantDegrees[1]; i++){
var point = centrePoint.destPoint(i, radius * 1.85);
points.push(new google.maps.LatLng(point.lat, point.lon)); // Radius should be in nautical miles from NHC
}
points.push(new google.maps.LatLng(centrePoint.lat, centrePoint.lon));
return points;
}
更新 3: 我可能还应该指出,这是针对地理坐标系(因为这整件事是针对热带气旋风半径),而不是笛卡尔坐标系坐标系。谢谢!
【问题讨论】:
-
你打算制作麦田怪圈吗?
-
是的,它适用于热带气旋,而不是麦田怪圈。 ;)
-
您最好重新定位这个问题,使其与语言和库无关。您确实需要更多的算法,也许还需要定义一两个数据结构。一旦你有了这些,将它移植到 JavaScript 并将值传递给 Google Maps API 将是微不足道的。
-
我添加了“几何”和“圆形”标签;这还不够吗?我很乐意更详细地讨论该算法,或者我认为我需要什么。一开始我对几何学不太感兴趣;)干杯!
-
到目前为止,您(自己)想到了什么?如果我们发现您尝试了其他方法而不是简单的 google。 可能会获得更多帮助。
标签: javascript algorithm maps geometry