首先給那些想評論我的低接受率的人...即時新的,給我一個休息。多邊形的洞
我說從本網站這個多邊形代碼: http://www.geocodezip.com/v3_polygon_example_donut.html
有一個問題,雖然,半徑是不準確的。所以,如果我測量兩個城市之間的距離,然後畫出這個圓圈,它就會離開,並且圓圈越大越差。
任何想法?
<script type="text/javascript">
function drawCircle(point, radius, dir) {
var d2r = Math.PI/180; // degrees to radians
var r2d = 180/Math.PI; // radians to degrees
var earthsradius = 3959; // 3959 is the radius of the earth in SM
var points = 1000;
// find the raidus in lat/lon
var rlat = (radius/earthsradius) * r2d;
var rlng = rlat/Math.cos(point.lat() * d2r);
var extp = new Array();
if (dir==1) {var start=0;var end=points+1} // one extra here makes sure we connect the
else {var start=points+1;var end=0}
for (var i=start; (dir==1 ? i < end : i > end); i=i+dir)
{
var theta = Math.PI * (i/(points/2));
ey = point.lng() + (rlng * Math.cos(theta)); // center a + radius x * cos(theta)
ex = point.lat() + (rlat * Math.sin(theta)); // center b + radius y * sin(theta)
extp.push(new google.maps.LatLng(ex, ey));
bounds.extend(extp[extp.length-1]);
}
// alert(extp.length);
return extp;
}
var map = null;
var bounds = null;
function initialize() {
var myOptions = {
zoom: 10,
center: new google.maps.LatLng(29.10860062, -95.46209717),
mapTypeControl: true,
mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
navigationControl: true,
mapTypeId: google.maps.MapTypeId.TERRAIN
}
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
bounds = new google.maps.LatLngBounds();
var donut = new google.maps.Polygon({
paths: [triangleCoords = [
new google.maps.LatLng(-87, 120),
new google.maps.LatLng(-87, -87),
new google.maps.LatLng(-87, 0)],
drawCircle(new google.maps.LatLng(29.10860062, -95.46209717), 2000, -1)],";
strokeColor: "#000000",
strokeOpacity: 0.6,
strokeWeight: 2,
fillColor: "#999999",
fillOpacity: 0.6
});
donut.setMap(map);
map.fitBounds(bounds);
</script>
你是什麼意思的「路」?你能提供一個演示鏈接嗎?或者至少有一個截圖? – 2012-04-05 12:41:18
CYQX-EINN之間的距離是1715nm。當我輸入CYQX @ 1715NM時,它的長度大約爲200英里。我確實考慮了轉換。當你檢查像CYQX-CYJT(159nm)那樣的較短距離時,距離它約3英里。問題是半徑的公式存在缺陷。 – 2012-04-05 13:00:50
因此,你在規約里程中使用地球半徑並不相關? 1715NM是1973SM; 159NM是182SM。如果你正在繪製1715年的規約里程,它將會在距離1715NM約200英里的地方。 – 2012-04-05 13:06:17