2017-04-26 56 views
-1

因此,我在一个位置正常工作。但是,我需要用户能够在两个办公地点之一中进行选择,然后根据用户选择的位置生成Google地图。该映射通过函数“initMap”进行初始化,该函数接收信息窗口的内容信息;以及办公室位置的经纬度。基于Javascript中的用户选择创建Google地图

正如我所说,我以前的工作,但现在我得到错误,主要围绕使用对象latLng,抱怨'。初始化标记时使用。

markers[0] = new google.maps.Marker({ 
       position: {latLng.lat, latLng.lng}, 
       map: map, 
       animation: google.maps.Animation.DROP 
       }); 

我当我这个移动到用户选择的地图由主要变化,来自组数字改变的经纬度到在所述onAddressChange函数确定的变量。

function onAddressChange(city) { 
      if(city === 'Cockeysville'){ 
       contentInfo = "<div id='infoAddress'>Cockeysville, MD</div>"; 
       latLng = { 
        lat: 39.490837, 
        lng: -77.438154 
       }; 
       initMap(contentInfo, latLng); 
      } else { 
       contentInfo = "<div id='infoAddress'>>Richmond, VA</div>"; 
       latLng = { 
        lat: 37.543268, 
        lng: -77.581338 
       }; 
       initMap(contentInfo, latLng); 
      } 
     } 

我还在学习了不少关于JavaScript和谷歌地图API,以便让我知道我做错了,请!检查我的小提琴,here

回答

1

您的位置对象需要有 '纬度' 和 'LNG' 的属性,就像这样:

markers[0] = new google.maps.Marker({ 
    position: { 
     lat: latLng.lat, 
     lng: latLng.lng 
    }, 
    map: map, 
    animation: google.maps.Animation.DROP 
}); 

...虽然,你可以直接使用你的latLng对象,像这样:

markers[0] = new google.maps.Marker({ 
    position: latLng, 
    map: map, 
    animation: google.maps.Animation.DROP 
});