2012-05-08 20 views
0

私はHTML5領域で非常に新しいです。PHPでmysqlからデータを取得し、アドレスからLatlngに変換するジオコードを使用するプログラムを作成しようとしています。それはLBSプログラムです、私は2週間試していた、私の質問は私はGoogleマップにマーカーを置くことができない、私はロケータを修正し、マップがロードされたが、マーカーは、マップ上に着陸することはできません、助けてください!ありがとう、本当にありがとうございます。このコードに間違いや問題がある場合は、私に寛大な助言を与えてください。私はこの分野では非常に新しく、HTML5のJavascriptでもっと学びたいと思っています。ありがとうございます。PHPとJavaScriptを使用したGoogle MAP API

私のコードはここにある:

   '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> 

答えて

0

あなたのコードは、十分に形成されて見えません。あなたは "for"ループの中で定義された "addMarker"関数を持っています。また、どこにも呼ばれていない。

マーカーとオーバーレイの操作にGoogleが提供するサンプルコードを見て、エミュレートしようとします。サンプルはマーカーを1つしか使用しませんが、結果を反復することができます。マーカーオブジェクトを配列に追加し、マップオブジェクトをマーカーのマッププロパティに設定することで正しい目的を達成しましたが、まずコードをフォーマット/再構成する必要があります。そうしないと、動作しません。

サンプルコード:

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

+0

Danimal、私をたくさん助け、あなたのアドバイスのためのおかげで、私は、少なくとも私の意図は、右方向にあり、それを再構築する方法だと思います。ありがとうございました !!! –

+0

mySQLデータをPHP経由でJavascriptに渡すにはどうすればいいですか?私はまだそれが絶望的な多くの方法を試してみました。 –

+0

@ ShuyouChang:それは新しい質問です。しかし、あなたがそれに尋ねる前に、Googleの例を読むのに時間をかけてください。マーカーから地図を取得する方法については、https://developers.google.com/maps/articles/phpsqlajaxを参照してください。 –

関連する問題