我试图弄清楚如何将可以创建的标记数量限制为一个。使用“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上显示的坐标?
我将非常感谢能从这些问题中得到任何帮助,我不希望所有这些问题得到解答!
答案 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。