0

私はHTML5の分野で非常に新しいので、PHPを使用してmysqlからデータをフェッチし、ジオコードを使用して住所からLatlngに変換するプログラムを作成しようとしています。これはLBSプログラムで、2週間試しましたが、Google MAPにマーカーを配置できない、ロケーターを修正して地図を読み込んだのですが、マーカーが地図に表示されないので、助けてください。ありがとう、そして私はあなたの助けに本当に感謝しています。このコードに間違いや問題がある場合は、寛大なアドバイスをお願いします。私はこの分野で非常に新しいです。HTML5Javascriptでさらに学習しようとしています。ありがとうございます。アドバイスに感謝します!

私のコードはここにあります:

             'enter code here`<?php
              require_once 'Common/system_start.php';
              $sql="select addr from tab_mem order by sn desc ";
              $result=  mysql_query($sql);
              $data=mysql_fetch_assoc($result);
              $row=mysql_num_rows($result);
              $n = array(); 
              for($i=0;$i<$rows;$i++) 
                  { 
                   $data=mysql_fetch_row($result);
                   $n[] = $data[0]; 
                      } 
                   echo '<script type="text/javascript">'; 
                   echo var n = new Array("', join($n,'","'), '");'; 
                   echo '</script>'; 
                   ?> 
                   <code>

              <pre>
             <!DOCTYPE html>
             <html><head><meta charset="utf-8">

             <meta name="viewport" content="initial-scale=1.0,user-scalable=no"/>
             <!-- Google Maps -->
             <script type="text/javascript" src="http://maps.google.com/maps/api/js?                                  `enter code here`sensor=true"></script>

             <script type="text/javascript" charset="utf-8" src="cordova-1.6.0.js">
             </script>
             <!-- program main -->
             <script type="text/javascript">
              var iterator=0;
              markers=n;
              var a=n.length;


             function load() {
             var map_div = document.getElementById("map_div");

             //initial locator
             navigator.geolocation.watchPosition(onSuccess, onError, { frequency: 3000        `enter code here`});


              // decide location
        function onSuccess(position){



//fetching latlng from GPS 

              var latlng = new google.maps.LatLng(position.coords.latitude, 
                `position.coords.longitude);

                 // display map
                 var gmap = new google.maps.Map(
                     map_div, {
                     zoom:16,
                     center: latlng,
                     mapTypeId: google.maps.MapTypeId.ROADMAP
                   });




                       //drop the marker

                     function drop() {
                     for (var i = 0; i < a; i++) {
                     setTimeout(function() {
                       }, i * 200);
                      }
                     }



            //decode address to latlng
            //pass address data from PHP
          for(var i in n){
     var address=n;
       geocoder=new google.maps.Geocoder(); 
        geocoder.geocode({'address':address},function(results,status){
     if(status==google.maps.GeocoderStatus.OK){
        //alert("AAA");
        address=results(i).geometry.location;
     function addMarker() { markers.push(new google.maps.Marker({

                       postion:results(i).geometry.location,
                        map:gmap,
                        animation:google.map.animation.DROP
                        //iterater++; 

       }));
   //itertor++;
   }
    //markerNearBy.setMap(map);
   }else{
   alert("Geocode was not sucessful for the following reason:"+status);
     }
  });
 }
   }

   }



     function onError(error) {
             alert('code: '+ error.code+ '\n' 
                 +'message: ' + error.message + '\n');    
       }

   </script>
   </head>
   <body onLoad="load()">
    <!-- Map Display place -->
    <div id="map_div" style="width:320px; height:480px;"></div>
    </body>
    </html>
    <code>
4

1 に答える 1

0

コードが整形式に見えません。「for」ループ内に「addMarker」関数が定義されています。また、どこにも呼ばれていません。

Googleがマーカーとオーバーレイを操作するために提供しているサンプルコードを見て、それをエミュレートしてみてください。サンプルは1つのマーカーのみを使用しますが、結果を単純に繰り返すことができます。Markerオブジェクトを配列に追加し、mapオブジェクトをMarkerのmapプロパティに設定することで、正しい意図が得られますが、最初にコードをフォーマット/再構築する必要があります。そうしないと、機能しません。

サンプルコード:

https://developers.google.com/maps/documentation/javascript/overlays#RemovingOverlays

于 2012-05-08T03:47:20.597 に答える