0

我是 HTML5 领域的新手,我正在尝试制作一个程序,该程序将使用 PHP 从 mysql 获取数据并使用地理编码将地址转换为 Latlng。这是一个 LBS 程序,我尝试了 2 周,我的问题是我无法将标记放入 Google MAP,我已更正定位器并加载了地图,但标记无法落在地图上,请帮忙!谢谢你,我非常感谢你的帮助。如果此代码有任何错误或问题,请多多指教,我是这方面的新手,我正在尝试更多地学习 HTML5 Javascript,谢谢,非常感谢您的建议!!!

我的代码在这里:

             '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 提供的用于处理标记和覆盖的示例代码,并尝试模拟它。该示例仅使用一个标记,但您可以简单地遍历您的结果。通过将 Marker 对象添加到数组并将地图对象设置为 Marker 的 map 属性,您的意图是正确的,但是您需要先格式化/重组您的代码,否则它将无法工作。

示例代码:

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

于 2012-05-08T03:47:20.597 回答