こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Google maps api v3と印刷について

お世話になります。

Google maps api v3を使用して、WEBサイトに地図をアップしたのですが、
お客様から印刷すると地図の表示がおかくしくなると指摘されました。
印刷プレビューから表示がおかしくなるとの事です。(その方はWinXP IE8)

いろいろ原因を探したのですがよく分からず、こちらでお力をお貸し頂ければと思います。

こちらで分かった事といえば、印刷時、設定用紙の半分もしくは3分の2より下に地図が
配置されていると、表示がおかしくなるということです。
(1枚目に地図が全部配置されているのに、2枚目にも地図の下部のみが移ってしまい、地図の直後にあるコンテンツを隠してしまう。その時、1枚目の地図もおかしい等)
(ただし、地図を設定用紙の半分より上に配置すると地図等は問題なく表示・印刷される。ポリゴンも隠れない)
この現象は私が作成したmapだけでなく、他のサイトのGoogle mapsでも同じ現象のような気がします。(たまたまでしょうか?)

回避方法等、どうぞお力をお貸しくださいませ。

<script type="text/javascript">
<!--
google.maps.event.addDomListener(window, 'load', function()
{
// 地図の設定
var mapOptions = {
zoom: 16,
center: new google.maps.LatLng(30.622401694889774, 138.72735120224),
mapTypeId: google.maps.MapTypeId.ROADMAP,
scaleControl: true
};
var mapObj = new google.maps.Map(document.getElementById('gmap'), mapOptions);

// 作成するポリゴン外枠座標の配列
var points = [
new google.maps.LatLng(30.62244094020011, 138.7270232439041),
new google.maps.LatLng(30.62266551021649, 138.7274872660637),
new google.maps.LatLng(30.6226175438582, 138.7275274991989),
new google.maps.LatLng(30.62263062559512, 138.72755163908005),
new google.maps.LatLng(30.622401694889774, 138.72773402929306),
new google.maps.LatLng(30.6224191372523, 138.72777426242828),
new google.maps.LatLng(30.622251254355135, 138.72789764404297),
new google.maps.LatLng(30.62193729058848, 138.7273102402687),
new google.maps.LatLng(30.622377711635124, 138.72697496414184),
new google.maps.LatLng(30.622410416071524, 138.72704201936722)
];

// ポリゴンのオプションを設定
var polygonOptions = {
path: points,
strokeWeight: 2,
strokeColor: "#ff0000",
strokeOpacity: 0.5,
fillColor: "#ff0000",
fillOpacity: 0.3,
title:"ポリゴン"
};

// ポリゴンを設定
var polygon = new google.maps.Polygon(polygonOptions);
polygon.setMap(mapObj);

// クリック処理・吹き出しのコメント設定
google.maps.event.addListener(polygon, 'click', function() {
new google.maps.InfoWindow({
content: '品川testホテル<br>〒141-0001<br>東京都品川区',
maxWidth : 200,
position: new google.maps.LatLng(30.622401694889774, 138.72735120224)
}).open(mapObj);
});

//polygonのみ最初から吹き出しを表示させる(擬似的にクリックイベントを発生させる)
google.maps.event.trigger(polygon,'click');
});
//-->
</script>

【CSS】
#gmap {
width: 630px;
height: 300px;
margin-left: 30px;
border: #ccc 1px solid;
}

※緯度・軽度は正確ではありません。申し訳ありません。
※地図の前後にはfloatが掛かったコンテンツがあります。(clearfixで解除済み)
※専門用語はよく分からないので、出来るだけ分かるように記載頂けると幸いです。

投稿日時 - 2012-06-20 02:06:26

QNo.7543957

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

Google Maps API のプログラムは問題ないようです。

印刷に関しては、CSSの影響のが大きいので、それを中心に試してみるといいと思います。

印刷用のCSSを作るときに float は制御が難しいので、用紙サイズを限定して
position = absolute で配置を決めることをおすすめします。

http://www.lucky-bag.com/archives/2005/08/print_css.html
http://blog.btmup.com/css/recover-browser-printing-bug-css-settings.html

投稿日時 - 2012-07-25 01:29:46

あなたにオススメの質問