0

私はこのコードを持っています

http://jsfiddle.net/DanielMontenegro/7pdU4/3/

ここで、その地図をサイトに配置して、ジオコーディングサービスを通じて特定のイベントを報告できるようにしたいとします。そのイベントのアドレス/座標をテーブルに取得し、すべてのユーザーレポートを単一のデータベースに収集するにはどうすればよいかを尋ねたいと思います。

4

3 に答える 3

2

ドキュメントの「記事」セクションには、Google MapsAPIv3とPHP/MySQLとのインターフェースに関する多くの情報があります。

これはあなたの質問に答えているように見えます。情報ウィンドウからデータベースへ:ユーザーが追加したフォームデータの保存

于 2012-08-30T14:42:20.317 に答える
1

ある種のアクションリスナー(できれば、ユーザーがマップをクリックするのをリッスンするリスナー)を設定する必要があります。次に、結果のlat / lngをジオコーディングし、受け取ったものをテーブルに保存します。

  1. ユーザーが地図上のポイントをクリックします。
  2. クリックイベントは、ユーザーがクリックした緯度/経度を取得します。
  3. Lat / lngは、Ajaxを使用してテキストアドレス用にジオコーディングされています。
  4. Lat / lngとテキストアドレスの両方が、データベーステーブルに並べて保存されます。
于 2012-08-30T14:41:54.797 に答える
1

以下のコードを参照して試してください。

私はphp静的配列を使用しています。データベースに接続して、要件に応じて配列を作成できます。以下の配列を参照してください。

<?php  $item = array('jaipur, rajasthan,india', 'udaipur, rajasthan,india'); ?>

私のコードの下を見てください。

<html>
    <head>
        <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=AIzaSyDwFjOazEAe1MI7nHV6vUwkWytOp8LH2Zk" type="text/javascript"></script>
    </head>
    <body onload="initialize();">
    <?php  $item = array('jaipur, rajasthan,india', 'udaipur, rajasthan,india'); ?>
    <script>
    var map = null;
    var geocoder = null;

    function initialize() {
            if (GBrowserIsCompatible()) {


                    map = new GMap2(document.getElementById("map_canvas"));
                    var addresses = ["<?php echo implode ('","', $item); ?>"]


                    var geocoder = new GClientGeocoder();
                    //var addresses = ["A II Z, Ibn Battuta Mall, Sheikh Zayed Road, 5th Interchange, Jebel Ali Village, Dubai","A. Testoni,Dubai Festival City Mall, Ground Floor, Dubai", "Abdulla Hussain Khunji, The Dubai Mall,Downtown, Abu Dhabi"];
                    var curIndex = 0;

                    function showAddress() {
                      var _cur = addresses[curIndex];
                      geocoder.getLatLng(
                        _cur,
                        function(point) {
                          if (!point) {
                            //alert(_cur + " not found");
                            //map.setCenter(new GLatLng(0, 0), 6);
                            //map.setUIToDefault();
                          } else {
                            //console.log(_cur+":"+point);
                            //alert(_cur);
                                    var cafeIcon = new GIcon(G_DEFAULT_ICON);

                                    // Set up our GMarkerOptions object
                                    markerOptions = { icon:cafeIcon };

                                    map.setCenter(point, 6);
                                    var marker = new GMarker(point, markerOptions);
                                    map.addOverlay(marker);

                                    var sales = new Array();
                                    sales = _cur.split("|");


                                    //Add click event on push pin to open info window on click of the icon
                                    GEvent.addListener(marker, "click", function() {
                                            marker.openInfoWindowHtml("<p class='para1bold' style=\"font-weight: bold;\">Address <br /><span class='para1' style='font-weight:normal;'>" + sales[1] + "</span></p>");
                                    });
                                    //Provides map,satellite,hybrid and terrain views in the map along with zoom control


                                    map.setUIToDefault();
                          }
                          //do next after done

                          curIndex++;

                          if(curIndex<addresses.length)
                            showAddress();
                        }
                      );
                    }
                    showAddress();
       }  
    }
    </script>
    <div id="map_canvas" style="width:100%; height:750px;"></div>
  </body> 
</html>
于 2012-08-30T16:19:47.340 に答える