Javascript 将经度和纬度传递到Google地图初始化函数
我正在尝试将经度和纬度传递给GoogleMapsJavaScriptV3API。下面的代码应该从开关中获取googleLatLong变量,然后将其传递给GoogleInitialize()函数。但是,目前无法在initialize()函数中访问googleLatLong变量。我怎样才能通过它 提前谢谢 头部的JavaScript:Javascript 将经度和纬度传递到Google地图初始化函数,javascript,function,google-maps-api-3,Javascript,Function,Google Maps Api 3,我正在尝试将经度和纬度传递给GoogleMapsJavaScriptV3API。下面的代码应该从开关中获取googleLatLong变量,然后将其传递给GoogleInitialize()函数。但是,目前无法在initialize()函数中访问googleLatLong变量。我怎样才能通过它 提前谢谢 头部的JavaScript: <script type="text/javascript"> //function to get a parameter from the query
<script type="text/javascript">
//function to get a parameter from the query string
var queryString = function(){
var s = window.location.search.substr(1),
p = s.split(/\&/),
l = p.length,
kv, r = {};
if(l === 0){return false;}
while(l--){
kv = p[l].split(/\=/);
r[kv[0]] = kv[1] || true;
}
return r;
}();
//get params from the url
var storeCode = queryString.store;
//switch page params based on the store code
switch(storeCode) {
case 'POO746':
var storeName = 'Poole';
var googleLatLong = '50.736129,-1.988229';
var trafficURL = 'http://hatrafficinfo.dft.gov.uk/feeds/rss/CurrentAndFutureEvents/South%20West.xml';
break;
case 'BRS464':
var storeName = 'Bognor Regis';
var googleLatLong = '50.798991,-0.667444';
var trafficURL = 'http://hatrafficinfo.dft.gov.uk/feeds/rss/CurrentAndFutureEvents/South%20East.xml';
break;
}
</script>
//函数从查询字符串中获取参数
var queryString=函数(){
var s=window.location.search.substr(1),
p=s.split(/\&/),
l=p.长度,
kv,r={};
如果(l==0){返回false;}
而(l--){
kv=p[l]。分裂(/\=/);
r[kv[0]]=kv[1]| |真;
}
返回r;
}();
//从url获取参数
var storeCode=queryString.store;
//根据存储代码切换页面参数
开关(存储代码){
案件‘POO746’:
var storeName='Poole';
变量googleLatLong='50.736129,-1.988229';
var-trafficURLhttp://hatrafficinfo.dft.gov.uk/feeds/rss/CurrentAndFutureEvents/South%20West.xml';
打破
案例“BRS464”:
var storeName='Bognor Regis';
变量googleLatLong='50.798991,-0.667444';
var-trafficURLhttp://hatrafficinfo.dft.gov.uk/feeds/rss/CurrentAndFutureEvents/South%20East.xml';
打破
}
主体中的JavaScript:
<script type="text/javascript">
var map
function initialize() {
var store = new google.maps.LatLng(googleLatLong);
var myOptions = {
zoom:12,
mapTypeId: google.maps.MapTypeId.HYBRID,
disableDefaultUI: true,
center: store
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
}
window.onload = function () {
initialize();
}
</script>
<div id="trafficMap">
<div id="map_canvas"></div>
</div>
变量映射
函数初始化(){
var store=new google.maps.LatLng(googleLatLong);
变量myOptions={
缩放:12,
mapTypeId:google.maps.mapTypeId.HYBRID,
disableDefaultUI:true,
中心:商店
}
map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
var trafficLayer=new google.maps.trafficLayer();
trafficLayer.setMap(地图);
}
window.onload=函数(){
初始化();
}
将其设置为页面的全局,这样您将拥有以下全局:
var storeCode = queryString.store;
var googleLatLong;
var map;
在初始化函数中解析查询字符串
<script type="text/javascript">
var map
//function to get a parameter from the query string
var queryString = function(){
var s = window.location.search.substr(1),
p = s.split(/\&/),
l = p.length,
kv, r = {};
if(l === 0){return false;}
while(l--){
kv = p[l].split(/\=/);
r[kv[0]] = kv[1] || true;
}
return r;
}();
function initialize() {
//get params from the url
var storeCode = queryString.store;
//switch page params based on the store code
switch(storeCode) {
case 'POO746':
var storeName = 'Poole';
var googleLatLong = new google.maps.LatLng(50.736129,-1.988229);
var trafficURL = 'http://hatrafficinfo.dft.gov.uk/feeds/rss/CurrentAndFutureEvents/South%20West.xml';
break;
case 'BRS464':
var storeName = 'Bognor Regis';
var googleLatLong = new google.maps.LatLng(50.798991,-0.667444);
var trafficURL = 'http://hatrafficinfo.dft.gov.uk/feeds/rss/CurrentAndFutureEvents/South%20East.xml';
break;
}
var store = googleLatLong;
var myOptions = {
zoom:12,
mapTypeId: google.maps.MapTypeId.HYBRID,
disableDefaultUI: true,
center: store
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
}
window.onload = function () {
initialize();
}
</script>
变量映射
//函数从查询字符串中获取参数
var queryString=函数(){
var s=window.location.search.substr(1),
p=s.split(/\&/),
l=p.长度,
kv,r={};
如果(l==0){返回false;}
而(l--){
kv=p[l]。分裂(/\=/);
r[kv[0]]=kv[1]| |真;
}
返回r;
}();
函数初始化(){
//从url获取参数
var storeCode=queryString.store;
//根据存储代码切换页面参数
开关(存储代码){
案件‘POO746’:
var storeName='Poole';
var googleLatLong=new google.maps.LatLng(50.736129,-1.988229);
var-trafficURLhttp://hatrafficinfo.dft.gov.uk/feeds/rss/CurrentAndFutureEvents/South%20West.xml';
打破
案例“BRS464”:
var storeName='Bognor Regis';
var googleLatLong=new google.maps.LatLng(50.798991,-0.667444);
var-trafficURLhttp://hatrafficinfo.dft.gov.uk/feeds/rss/CurrentAndFutureEvents/South%20East.xml';
打破
}
var store=googleLatLong;
变量myOptions={
缩放:12,
mapTypeId:google.maps.mapTypeId.HYBRID,
disableDefaultUI:true,
中心:商店
}
map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
var trafficLayer=new google.maps.trafficLayer();
trafficLayer.setMap(地图);
}
window.onload=函数(){
初始化();
}
var googleLatLong = '50.736129,-1.988229';
我现在有:
var glat = '50.736129';
var glong = '-1.988229';
在谷歌地图初始化功能中,它现在看起来如下所示:
var store = new google.maps.LatLng(glat,glong);
不太清楚为什么它不能与合并的经度和纬度变量一起工作,但现在,进行此更改使代码工作。您所说的“似乎不工作”是什么意思?我没有测试代码,只是修改了你的代码,你检查过javascript控制台吗?对不起,我没有注意到你更改了代码。你换了哪些部件?谢谢你的帮助。当我尝试这段代码时,地图仍然没有显示,然后我在页面上又出现了一个故障,因为trafficURL在页面下一步使用时未定义。我刚刚修复了发布代码中的两个问题。googleLatLong是一个字符串,它必须是google.maps.LatLng。既然它已经是一个google.maps.LatLng,商店只是它的一个副本。当你说让它成为页面的全局,你的意思是我把它放在哪里?我试着把它放在VarMap旁边,但它似乎并没有让map显示出来。把它放在任何函数之外。然后,所有函数都可以访问它(只要函数没有声明一个名称相同的变量,这将有效地隐藏全局变量)。另外,在尝试读取之前,请确保已指定该值。最后我解决了这个问题,请参见下面的答案。