1

地図に位置を表示するアプリケーションを作成しています。地図にリンクするページがあり、そのリンクをクリックすると、地図を読み込まずに地図ページに変更されます。

そのため、ブラウザーの [戻る] ボタンをクリックして、リンクのあるページを更新する必要があります。その後、リンクをもう一度クリックすると、この時点でマップが読み込まれます。更新せずにマップを読み込むのを手伝っていただければ、ありがたい

<div data-role="page">
        <div data-role="header">
            <a href="menudep.jsp" data-icon="back" data-theme="c">Atras</a>
            <h1><%=corto%></h1>
            <h4><img src="../images/logo_mich.png" width="40" height="40" /></h4>
            <a href="mobilelaip.html" data-icon="home" data-theme="c">Inicio</a>
        </div>
        <div data-role="content">
            <p>
                <%=descrip%>
            </p>
            <a href="map3.html">Ubicación</a>
            <ul data-role="listview" data-inset="true">

                <li><a href="oficio.jsp?dep=<%=id_dep%>">Info. Oficio</a></li>
                <li><a href="contacto.jsp?dep=<%=id_dep%>" data-rel="dialog">Contacto</a></li>
                <li><a href="paginaweb.jsp?dep=<%=id_dep%>" data-inline="true" data-rel="dialog">Pagina Web</a></li>             

            </ul>
        </div>
    </div>  


     <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
     <script type="text/javascript">
        // When map page opens get location and display map
        $('.page-map').live("pagecreate", function() {
            if(navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(function(position){
                    initialize(position.coords.latitude,position.coords.longitude);
                });
            }
        });

        function initialize(lat,lng) {
            var latlng = new google.maps.LatLng(lat, lng);
            var myOptions = {
                zoom: 20,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
            new google.maps.Marker ( 
            { 
                map : map, 
                animation : google.maps.Animation.DROP,
                position : latlng  
            });
        }
    </script>

そして map3.html コードはこれです

<div data-role="page" class="page-map" style="width:100%; height:100%;">
<div data-role="header"><h1>Mapa</h1></div>
<div data-role="content" style="width:100%; height:100%; padding:0;"> 
    <div id="map_canvas" style="width:100%; height:100%;"></div>
</div>

答えてくれてありがとう

4

2 に答える 2

0

ここに、私がうまく使ったサンプルコードがあります。プラグインを使用しました: https://code.google.com/p/jquery-ui-map/

更新する必要がない場合は、「pageshow」イベントを使用できます。

索引

<div data-role="page" id="pagWienerMundo" data-theme="a">
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
    <script src="js/jquery-ui-map.min.js" type="text/javascript"></script>

    <div role="main" class="ui-content">
       <div id="map_canvas">
       </div>
    </div><!-- /content --> 
</div><!-- /page map -->

ジャバスクリプト

$(document).on("pageshow","#pagMap", function () {
    if (!(typeof google === 'object' && typeof google.maps === 'object'))
        $("#map_canvas").empty().append('<h3 style="color:#db393b;text-align:center">Connect to internet</h3>');
    else
    {
        $("#pagWienerMundo [role='main']").css("padding","0em");
        $('#map_canvas').css("width", "100%");
        $('#map_canvas').css("height", "450px");
        $('#map_canvas').gmap().bind('init', function() { 
            $.each( mapObj, function(i, marker) {
                $('#map_canvas').gmap('addMarker', { 
                    'position': new google.maps.LatLng(marker.latitude, marker.longitude), 
                    'bounds': true 
                }).click(function() {
                    $('#map_canvas').gmap('openInfoWindow', { 'content': marker.content }, this);
                });
            });
        });
    }
});

JSON

mapObj=
[
  {
    "content" : "Example text to show on marker",
    "latitude": -32.95845,
    "longitude": -60.66764,

  }
]

json オブジェクトがローカルでスコープ内にあると仮定します (たとえば、グローバルとして宣言されています)。

于 2014-09-10T14:34:11.683 に答える