2

私はこのコードをクライアント側で作成し、メールの目的でサーバーに送信しました。そのメールでは、画像が壊れた画像として表示されます。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);  

このコードを使用すると、画像が表示されません。このコードをクライアント側で作成し、メールで送信する目的でサーバーに送信しました。そのメールでは、画像が壊れた画像として表示されます。コードに問題はありますか?

4

2 に答える 2

1

2 つの都市間の距離が大きくなると、polyline 変数には多くの Glatlang 値が含まれます。そのため、URL の文字数制限 (URL の文字数制限とは) を超えてしまいます。ajax リクエストを使用して、文字制限を超える長い URL を送信することはできません。それが私がその壊れたイメージを得た理由です。解決策として、値をスキップして for ループをインクリメントすることにより、Glatlang の中間値を無視しました。したがって、ポリラインはズームアウトされたマップに使用できます。

于 2012-02-22T14:33:20.497 に答える
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" />';  
于 2012-02-22T11:36:41.330 に答える