如何使用google map api实现这一目标?
http://i59.tinypic.com/6dzb88.jpg
每边的米。
如果我右键点击谷歌地图距离,我可以这样做: http://i57.tinypic.com/21e7w1.jpg
基本上,我希望我绘制的多边形看起来像第一个或第二个图像。 (我需要标签)这可能吗?
答案 0 :(得分:1)
我不确定我是否正确理解你的问题...... 但是,可以使用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);
如果您在绘制多边形时遇到问题,请在此处查看google maps示例 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'
});
或者你可以简单地创建一些自定义多边形并绘制它们。可能对所有数字都有一点工作。