gpt4 book ai didi

javascript - Google map 多边形距离(以米为单位)

转载 作者:行者123 更新时间:2023-12-03 11:47:52 24 4
gpt4 key购买 nike

如何使用谷歌地图 API 实现此目的?

http://i59.tinypic.com/6dzb88.jpg

每边的米。

如果我右键单击谷歌地图距离,我可以做这样的事情: http://i57.tinypic.com/21e7w1.jpg

基本上,我希望我正在绘制的多边形看起来像第一张或第二张图像。 (我需要标签)这可能吗?

最佳答案

我不确定我是否正确理解你的问题......但是球体上两个经度/纬度点之间的距离可以使用 http://en.wikipedia.org/wiki/Haversine_formula 来计算

Javascript 实现

rad = function(x) {return x*Math.PI/180;}

distHaversine = function(p1, p2) {
var R = 6371; // earth's mean radius in km
var dLat = rad(p2.lat() - p1.lat());
var dLong = rad(p2.lng() - p1.lng());

var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(rad(p1.lat())) * Math.cos(rad(p2.lat())) * Math.sin(dLong/2) * Math.sin(dLong/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;

return d.toFixed(3);
}

我认为谷歌地图 API 中已经有一个实现

google.maps.geometry.spherical.computeDistanceBetween (latLngA, latLngB);

如果您在绘制多边形时遇到问题,请查看此处的谷歌地图示例 https://developers.google.com/maps/documentation/javascript/examples/polygon-simple

您可能需要为标记执行一些自定义文本叠加。也许使用来自: https://code.google.com/p/google-maps-utility-library-v3/MapLabel 类:

var mapLabel = new MapLabel({
text: 'Test',
position: new google.maps.LatLng(50,50),
map: map,
fontSize: 20,
align: 'right'
});

或者您可以简单地创建一些自定义多边形并绘制它们。对于所有数字来说可能都需要一些工作。

关于javascript - Google map 多边形距离(以米为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25970730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com