Google地图在输入

时间:2018-06-07 06:51:30

标签: javascript jquery google-maps-api-3

我正在使用谷歌地图API,它通过隐藏的文本框获取lat。今天它表现得很奇怪,它在地图上显示错误的位置,但是如果我为lat和long变量手动编写lat long,那么效果很好。

HTML:

<input type="hidden" name="ads-lat" id="ads-lat" value="35.68969456776873">
<input type="hidden" name="ads-long" id="ads-long" value="51.46769173739062">

不工作:

var long = document.getElementById("ads-long").value;
var lat = document.getElementById("ads-lat").value;

Not working

工作良好:

var long = 51.46769173739062;
var lat = 35.68969456776873;

Working

Google代码:

map = new google.maps.Map(document.getElementById('map'), {
center: {
lat: +lat,
lng: +long
},
zoom: 15,
streetViewControl: false,
styles : styles, 
fullscreenControl: true
});

我不知道它为什么会这样,控制台中没有错误,我也检查了两个不同的浏览器,它不是缓存。正如你所看到的那样,当我手动编写lat和long时,它会工作,它是一种数字/小数,对吧?假设它从输入中获取值作为字符串,但我在变量之前写了一个加号+,我再说一遍,谷歌的not a number没有错误。有什么想法吗?

JSFiddle

它显示在俄罗斯的某个地方(我认为),但它错了,它应该显示在伊朗的某个地方,你可以在this网站上查看lat。

1 个答案:

答案 0 :(得分:1)

这是怎么回事?

http://jsfiddle.net/f09bteov/19/

我做了两件事: 1)将parseInt更改为parseFloat(你得到每度35,51 ...... ~170km面积的纬度/经度,所以稍微偏离), 2)纠正他们的命令,并且 3)删除了+声明中的lat: +lat, lng: +long。不知道为什么他们在那里。