2014-09-22 148 views

回答

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); 
} 

我觉得有来计算球体上的经度/纬度点之间 但距离也是google map API中的一个实现

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

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

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

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

或者你可以简单地创建一些自定义的多边形和绘制它们。对于所有的数字可能会有点工作。

+0

我已经绘制了一个多边形的googlemap,我想要标签在每个多边形的边上。这更好地描述了这个问题https://groups.google.com/forum/#!topic/google-maps-js-api-v3/YLRW3tWmWYE 即使在V3中使用ELabels时,该代码也不起作用。我也希望旋转标签,因为它显示在我的图像中。或者最好的是,在我的第二个图像中有类似的东西。 – 2014-09-22 11:44:14

相关问题