【问题标题】:Google maps show wrong location on input谷歌地图在输入时显示错误的位置
【发布时间】:2018-06-07 06:51:30
【问题描述】:

我正在使用 Google Maps API,它通过隐藏的文本框获取 lat long。今天它表现得很奇怪,它在地图上显示错误的位置,但是如果我手动为 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

谷歌代码:

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 long。

【问题讨论】:

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


    【解决方案1】:

    怎么样?

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

    我做了两件事: 1) 将parseInt 更改为parseFloat(您的纬度/经度为 35,51 ... 每度约 170 公里区域,所以有点偏离), 2) 更正他们的顺序,并且 3) 删除了 + 声明中的 lat: +lat, lng: +long。不知道他们为什么在那里。

    【讨论】:

    • 不,仍然是错误的位置,它是俄罗斯在你的小提琴中,它是错误的,正确的位置是伊朗。 This 是对的。
    • 试试这个 ... jsfiddle.net/f09bteov/19 ... lat/long 变量被颠倒了
    • 我使用 +parseInt 将字符串转换为数字,但是 parseFloat 救了我。谢谢。你的小提琴需要更新。
    猜你喜欢
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 2011-08-11
    相关资源
    最近更新 更多