0

API で生成された (V3) Google マップを Internet Explorer 7 および 8 から印刷すると、奇妙な問題が発生します。

次のような JavaScript を使用してマップを生成します。

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
    var centroid = new google.maps.LatLng(35.9948166667, -83.9781791667);
    var myOptions = {
      disableDefaultUI: true,
      zoom: 12,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      center: centroid
    };
    var map = new google.maps.Map(document.getElementById("map"), myOptions);
    var marker0 = new google.maps.Marker({
      position: new google.maps.LatLng(36.1102, -83.9208),
      map: map
    });
    var marker1 = new google.maps.Marker({
      position: new google.maps.LatLng(36.001, -83.8646),
      map: map
    });
}
</script>

通常、私のマップには約 25 ~ 35 個のマーカーがあります。これらは、OS X と Windows XP の両方で、Safari、Firefox、および Chrome から適切に印刷されます。しかし、Internet Explorer 7 または 8 から印刷しようとするとすぐに、マップがすべて狂ってしまいます。印刷用 CSS で設定した境界からはみ出し、マーカーがマップから消えて、マップ上に空白の場所だけが残ります。

誰でもこれに遭遇しました/続行する方法を知っていますか?

ティア。

4

1 に答える 1

1

IIRC、印刷に適した地図が必要な場合は、Google Static Maps API を使用する必要があります。

LatLng またはマーカーから Static Maps API URL リクエスト文字列を作成するのは非常に簡単です。1 つの注意点として、URL は文字エスケープを含めて 2048 文字に制限されています。これにより、マップ上に一度に表示できるマーカーの数が制限されます。

[編集] Javascript API では、マーカーにはクラス「gmnoprint」があり、印刷されたレンダリングにマーカーが表示されないようにします。マーカーを反復処理してこのクラスを削除すると、マーカーをページに印刷できるようになります。私の知る限り、これは方向線では機能しません。

于 2011-02-08T17:37:02.640 に答える