7

google map v3はhtml5、phonegapでは完全には表示されません。ここに画像の説明を入力してください

このマップはドラッグ可能です。これがJavaScriptコード(main.js)です。

 var map;
 function initialize() {
 var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
 var myLatlng2 = new google.maps.LatLng(-24.363882,131.044922);

 var myOptions = {
 center: myLatlng,
 zoom:5,
 mapTypeId: google.maps.MapTypeId.ROADMAP

 };
 map = new google.maps.Map(document.getElementById("map_canvas"),
 myOptions);

 setMarker(myLatlng);
 setMarker(myLatlng2);

 }

 function setMarker(p)
 {
 marker = new google.maps.Marker({
 position: p,
 title:"Hello World 2!"
 });
 marker.setMap(map);

 }

 initialize();

これが私のhtmlです

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta name="viewport" content="initial-scale=1.0; maximum-scale=1.0; user-scalable=yes;" />
 <meta http-equiv="Content-type" content="text/html; charset=utf-8">
 <link rel="stylesheet"  href="css/jquery.mobile.css" />
 <link href="css/styles.css" rel="stylesheet" type="text/css" />
 <script type="text/javascript" charset="utf-8" src="js/cordova-1.9.0.js"></script>

 <script type="text/javascript" charset="utf-8" src="js/jquery-1.6.3.min.js"></script>
 <script type="text/javascript" charset="utf-8" src="js/jquery.mobile-1.1.0.js"></script>
 <script type="text/javascript" charset="utf-8" src="js/tabs.js"></script>

 <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
 <script type="text/javascript" src="jquery.ui.map/jquery.ui.map.js"></script>
 <script type="text/javascript" src="jquery.ui.map/jquery.ui.map.services.js"></script>
 <script type="text/javascript" charset="utf-8" src="js/main.js"></script>
 </head>
 <body>
 <div id="page-id" data-role="page" >
 <div id="map-container"><div id="map_canvas" style="height:600px; width:600px;"></div>  </div>

 </div>
 </body>
 </html>

css

   #map-container {
    padding: 6px;
    border-width: 1px;
    border-style: solid;
    border-color: #ccc #ccc #999 #ccc;
    -webkit-box-shadow: rgba(64, 64, 64, 0.5) 0 2px 5px;
    -moz-box-shadow: rgba(64, 64, 64, 0.5) 0 2px 5px;
    box-shadow: rgba(64, 64, 64, 0.1) 0 2px 5px;
    width: 600px;
  }

  #map_canvas {
    width: 600px;
    height: 400px;
  }

ファイアバグで調べて完全にロードし、divに完全なマップを表示した場合、問題の解決策を提案してください。

4

4 に答える 4

1

同じ問題があり、マップで「max-width: none」を設定することで解決しました。しかし、理由は覚えていません。:(

于 2012-07-19T12:49:16.040 に答える
0

Pls は以下をチェック:

<div id="mapa"  style="width: 350px; height: 350px"></div>

上記は、リストされるマップの div です。

var map = new google.maps.Map(
document.getElementById('mapa'), {
center: new google.maps.LatLng(9.295680287227711, 76.87921151518822),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
});

上記のすべてを試してもうまくいかなかったので、このようなトリックを実行して、望ましい結果を得ました。マウスオーバー関数を作成し、以下のコードを呼び出します

(1) 修正

<div id="mapa" onmouseover="show_sidebar()" style="width: 350px; height: 350px"></div> 

(2)

function show_sidebar(){
google.maps.event.trigger(map, 'resize');
}
于 2015-02-03T12:04:42.057 に答える
0

過去にこの問題が発生し、私の解決策を同様の質問に投稿しました。

以下はそれを修正しました:

google.maps.event.addListenerOnce(map, 'idle', function() {
   google.maps.event.trigger(map, 'resize');
});

マップのアイドル状態 (マップ自体の読み込みが完了する) を待ってから、マップ自体のサイズを変更するよう指示します。

于 2015-02-03T13:20:05.727 に答える