0

我有这个代码

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

现在,假设我想将该地图放在一个站点中,以允许人们通过地理编码服务报告某些特定事件。我想问我如何设法在表格中获取该事件的地址/坐标,并将所有用户报告收集到一个数据库中。

4

3 回答 3

2

在文档的“文章”部分中有很多关于将 Google Maps API v3 与 PHP/MySQL 接口的好信息

这个看起来像是回答了你的问题;从信息窗口到数据库:保存用户添加的表单数据

于 2012-08-30T14:42:20.317 回答
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 回答
1

您需要设置某种动作监听器(最好是监听用户点击地图的监听器)。然后,只需对生成的 lat/lng 进行地理编码,并将收到的内容存储在表中。

  1. 用户单击地图上的一个点。
  2. 点击事件获取用户点击的纬度/经度。
  3. Lat/lng 使用 Ajax 为文本地址进行地理编码。
  4. Lat/lng 和文本地址都并排存储在您的数据库表中。
于 2012-08-30T14:41:54.797 回答