2011-08-03 114 views
1

我在客戶端編寫了這段代碼,併發送到服務器用於發送電子郵件的目的。在該電子郵件中,圖像顯示爲斷開的圖像我想在google靜態地圖上繪製路徑。我使用的代碼。在谷歌靜態地圖上繪製路徑

<img src = "http://maps.googleapis.com/maps/api/staticmap?size=400x400&path=weight:3%7Ccolor:orange%7Cenc:'+polyline+'" /> 

折線我創造了這樣

var polyline; 
var points = new Array(); 
for(var i=0; i<googleRoute.getVertexCount(); i++) 
{ 
    points[i] = new GLatLng(googleRoute.getVertex(i).lng(),googleRoute.getVertex(i).lat()); 
} 
polyline = new GPolyline(points, '#ff0000', 5, 0.7); 

,當我用這個代碼就不會出現在image.I寫在客戶端的代碼,併發送至服務器的電子郵件purpose.in那電子郵件圖像顯示爲破碎的圖像有沒有我的代碼有問題?

+0

折線只對動態地圖工作 – Alex

+0

@alex:這有一個叫做編碼折線http://code.google.com/apis/maps/documentation/staticmaps/ 我認爲靜態地圖折線工作也 – lakshman

+0

啊話題,所以你可以。涼!那麼,你怎麼渲染圖像?如果它不在JavaScript中,那麼你不能引用「折線」。也許發佈一些更多的代碼? – Alex

回答

1

當兩個城市之間的距離增大,折線變量將包括很多Glatlang值。所以它會導致超出url字符限制(What is the character limit on URL)。 我們無法使用ajax請求發送超過charcter限制的長url。這就是爲什麼我得到了這個破碎的圖像。 作爲解決方案,我通過使用跳躍值增加for循環來忽略中間Glatlang值。因此折線可以被接受用於縮小地圖。

+1

,解決方案是什麼? – Jonathan

+1

我添加了額外的字符作爲解決方案 – lakshman

0

如果你有一個點的數組,你可以簡單地做:

$points = array('53.061969559518,-3.1661187796875', '52.647368106972,-2.6806604056641'); 
$pointsUrl = ""; 
for($i=0; $i<count($points); $i++) { 
    $pointsUrl .= '%7C'.$points[$i]; 
} 
echo '<img src="http://maps.googleapis.com/maps/api/staticmap?path=color:0x0000ff%7Cweight:5'.$pointsUrl.'&size=270x256&maptype=roadmap&sensor=false" />';