无法居中映射到gmap3中的标记

时间:2014-04-09 08:57:26

标签: javascript google-maps jquery-gmap3

所以我试图找到一些关于如何将地图置于标记中心的文档, 但不知怎的,它对我不起作用。

Gmap3页面上的示例中,无需在地图选项中添加“中心”即可正常工作 对我来说,即使是“中心:latLng”它也行不通。

所以我尝试了一些不同的组合,没有什么对我有用..

然后我试图分别提取纬度和经度并检查我得到的数字 在允许输入lat和lng的网站上,我意识到coords不是标记的那些,所以我不知道我是否正确提取它们还是存在另一个问题。

这是我现在的代码 -

$("#mapholder").gmap3({
    getgeoloc:{
        callback : function(latLng){
        //here is where i tried to get the lat and lng out of the latLng
            lat = parseFloat(latLng.A.toFixed(6));
            console.log(typeof(lat));
            lng = parseFloat(latLng.k.toFixed(6));
            lat_Lng = latLng;
            console.log("latitude: "+lat+" , longtitude: "+lng);
            console.log("typeof latlng: "+typeof(latLng));
            if (latLng){
                $("#mapholder").gmap3({
                    map:{
                        options:{
                            center:latLng,
                            zoom: 5
                        }
                    },
                    marker:{ 
                        latLng:latLng
                    }
                 });
             }
        }
    }
});

我试过的另一种方式是

center:[lat,lng]

即使没有像demo这样的任何中心,它也无效。

非常感谢您的帮助!

更新

它可能与不允许这些参数的回调函数有关吗?

我还尝试向标记添加数据类型,因此它会说“你在这里!”,这也不起作用。

2 个答案:

答案 0 :(得分:2)

该脚本工作正常,您的演示存在问题:

当gmap3在隐藏"我的地点" -tab时创建地图实例#mapholder没有大小(地图的中心是地图的左上角)在这种情况下)。

当您选择"我的地点" -tab第一次创建map-instance后,必须触发map的resize-event并重新分配中心:

  $(link).fadeIn(1000, function(){
    $(link).addClass("current");
    if(link==='#myPlaceSection' && lat_Lng){
        $('#mapholder').gmap3({trigger:"resize"});
        $('#mapholder').gmap3({map:{options:{center:lat_Lng}}});
        lat_Lng=null;
      }
    }  
  );

答案 1 :(得分:0)

根据参考文献,你需要给latLong如下:

map:{
  options:{
  center: new google.maps.LatLng(lat,lng),
  zoom: 5
},

Reference is here

试试这个。这对你有用。