0

我正在创建一个带有可拖动标记的谷歌地图。创建标记后,以后如何更改其位置?我可以用setposition(latlng)这个吗?如果是,如何?这是我创建 Google Map 3 实例的代码:

function showm(la,lo) {
  $('#gmap').hide();
  alert(lo);
  $('#gmap').gmap3({
    marker:{
      latLng: [la,lo],
      options:{
        draggable:true
      },
      events:{
        dragend: function(marker){
          $(this).gmap3({
            getaddress:{
              latLng:marker.getPosition(),
              callback:function(results){
                alert(marker.getPosition().lat());
                var map = $(this).gmap3("get"),
                  infowindow = $(this).gmap3({get:"infowindow"}),
                  content = results && results[1] ? results[0].formatted_address : "no address";
                if (infowindow){
                  infowindow.open(map, marker);
                  infowindow.setContent(content);
                } else {
                  $(this).gmap3({
                    infowindow:{
                      anchor:marker,
                      options:{content: content}
                    }
                  });
                }
              }
            }
          });
        }
      }
    },
    map:{
      options:{
        zoom: 12
      }
    }
  });
  $('#gmap').show();
}
4

1 回答 1

1

任何进展?:) 无法准确地帮助您解决您的问题,但如果您在使用该插件方面还没有走得太远,我会冒昧地建议另一个 jQuery 插件(landcarte)的解决方案。

您帖子中的代码如下所示:(
猜猜它看起来更具可读性和 jQuery 风格)

var map = $("#map").geoMap();
var balloon = map.balloon();

var showMap = function(lat, lon) {
    map.attr({ center: [lat, lon], zoom: 12 })
       .add("marker", { position: [lat, lon], draggable: true });
    var marker = map.find("markers").eq(0);
    marker.on("dragend", function(event) {
        map.search(event.location, function(data) {
            balloon.show({ position: marker.attr("position"), content: data.address || "?" });
        });
    });
};

showMap(55.68, 12.56);

至于你的问题:一旦地图被初始化,标记的位置可以这样改变

map.find("markers").eq(0).attr({ position: [55.68, 12.56] });
于 2013-06-17T10:45:44.283 回答