Google Maps API v3 jQuery Mobile

时间:2011-11-18 06:23:22

标签: jquery google-maps mobile google-maps-markers

我试图弄清楚如何将可以创建的标记数量限制为一个。使用“other-example.html”文件中的示例代码,用户可以创建多个标记,我希望用户仅限于一个标记。我在addMarker函数周围尝试了一个“if”语句,例如“int i; if(i< 1){... i ++;}”并没有任何运气。我猜这是很容易解决的问题。

http://jquery-ui-map.googlecode.com/svn/trunk/demos/other-examples.html

此外,我正在尝试找到一个很好的教程,使用gmaps通过PHP / MYSQL将lat / long位置数据记录到我已经创建的数据库中。具体来说,如何将新创建的标记的纬度/经度信息传递给数据库,然后检索要在不可编辑的gmap上显示的坐标?

我将非常感谢能从这些问题中得到任何帮助,我不希望所有这些问题得到解答!

1 个答案:

答案 0 :(得分:0)

如果您允许用户添加标记,我会说您然后对您的PHP页面进行ajax调用,传递用户ID,纬度和经度(以及您的数据库需要的任何其他内容)。

为防止用户添加超过1个标记,我认为您一定是在正确的轨道上。我可能会这样做。

var intMarkers = 0;  // make it global

$('#map_canvas').gmap().bind('init', function(event, map) {
            $(map).click( function(event) {
                intMarkers++;
                if (intMarkers === 0) {
                            $('#map_canvas').gmap('addMarker', {'position': event.latLng, 'draggable': true, 'bounds': false}, function(map, marker) {
                                $('#dialog').append('<form id="dialog'+marker.__gm_id+'" method="get" action="/" style="display:none;"><p><label for="country">Country</label><input id="country'+marker.__gm_id+'" class="txt" name="country" value=""/></p><p><label for="state">State</label><input id="state'+marker.__gm_id+'" class="txt" name="state" value=""/></p><p><label for="address">Address</label><input id="address'+marker.__gm_id+'" class="txt" name="address" value=""/></p><p><label for="comment">Comment</label><textarea id="comment" class="txt" name="comment" cols="40" rows="5"></textarea></p></form>');
                                findLocation(marker.getPosition(), marker);
                            }).dragend( function(event) {
                                var self = this;
                                findLocation(event.latLng, this);
                            }).click( function() {
                                openDialog(this);
                            });

                            // stick in an Ajax call here too
                }
            });
        });

此外,示例代码使用的是已弃用的Google Maps API 2,我建议您改用API 3。