我正在为我的网站开发/获取一个简单的GMaps应用程序,让用户绘制两个点并获得两者之间的距离。
这是一款适合我的应用。 http://www.daftlogic.com/projects-google-maps-distance-calculator.htm
我认为“因为乌鸦飞得”就足够了,但如果可能的话,“建议的路线”测量会很好并且太费时间。
有人知道是否有这样的东西可以下载吗?此外,从头开始开发是困难/耗时吗?
不幸的是,它只是一个更大的项目的一小部分,所以我将无法花太多时间在它上面。
任何建议都非常感谢。
谢谢, 康纳
答案 0 :(得分:5)
由于Google地图使用纬度和经度,因此您必须转换到首选测量系统,以便在乌鸦飞行时获得距离。
Here's one that uses kilometers;
var R = 6371; // km
var dLat = (lat2-lat1).toRad();
var dLon = (lon2-lon1).toRad();
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) *
Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
但是,您可以从Google Maps v2 API获取路线的方向数据。查看GDirections以获取API参考。我在一个项目中使用它,它工作正常。
答案 1 :(得分:0)
不知道它是否有帮助,但是wolfram允许您查询距离(以及其他功能),例如:
distance from Los Angeles to New York
为您提供此answer
但你也可以查询坐标,所以也许你可以通过用户点击地图来获取坐标并查询类似的内容:
distance from 40.34N 74.00W to 40.34N 12.00W
为您提供this result
答案 2 :(得分:0)
您也可以使用Google地图的MeasureTool
https://github.com/zhenyanghua/MeasureTool-GoogleMaps-V3
例如,引用geometry
库,然后引用var measureTool = new MeasureTool(map);
。
这是一个实时demo