单击按钮,在Google Map中显示基于用户定义的Lat / Long的标记

时间:2014-02-23 09:04:50

标签: google-maps-markers

首先,新手在这里。所以请忍受我的问题。 :)

假设我有一个从我的数据库中提取的位置(纬度/经度),我想将此位置用作标记在地图中绘制的位置。 怎么办?

我已尝试实现我在此处找到的一些代码,但似乎对我没用。

这是我到目前为止所拥有的:

   var center;
    var myLatlng;
           function initialize() {
               myLatlng = new google.maps.LatLng(document.getElementById("txtLatLng"));
               var mapOptions = {
                   zoom: 12,
                   center: myLatlng
               }
               var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);          

               var marker = new google.maps.Marker({
                   position: myLatlng,
                   map: map
               });

google.maps.event.addDomListener(window, 'load', initialize);

我正在尝试用txtbox值替换myLatLng变量的值,但没有运气。

PS。我知道这是在事件加载。这引出了我的第二个问题,如何在事件btnClick中完成所有这些?

提前致谢!

1 个答案:

答案 0 :(得分:1)

检查example at jsbin

您可以在启动时使用一个输入字段,但必须解析它。我把它留在那里并添加基本的解析。单击按钮不会触发该部分。

对我来说,最好为纬度和经度设置单独的输入字段:添加两个输入字段和触发功能的按钮:

function setMarker() {
    var latitude = latEl.value;
    var longitude = lngEl.value;

    if (latitude == '' || longitude == '') {
        console.log('lat or lng not defined');
        return;
    }

    var position = new google.maps.LatLng(parseFloat(latitude), 
                                          parseFloat(longitude));

    var marker = new google.maps.Marker({
        position: position,
        map:      map
    });

    map.setCenter(position);
}
调用

setCenter()将标记定位到中心。否则它可能发生在可见部分之外。