我在自定义字段中有一些坐标:
45.4924038,9.2040718
我正在将它们加载到这样的地图中:
var mylatLg = "<?php echo get_post_meta($id, 'usp-custom-90', true); ?>";
var mylatLg = mylatLg.split(',');
console.log(mylatLg[0]);
console.log(mylatLg[1]);
var lat = parseInt(mylatLg[0]);
var lng = parseInt(mylatLg[1]);
第一个console.log给出:
45.4924001
9.206260499999985
第二个control.log显示:
45
9
如果我按照下面的方式加载标记,它会给我一个错误的位置(因为它是45,9(
var marker = new google.maps.Marker({
map: map,
position: {lat: parseInt(mylatLg[0]), lng: parseInt(mylatLg[1])},
如果我按照以下加载标记
var marker = new google.maps.Marker({
map: map,
position: {lat: mylatLg[0], lng: mylatLg[1]},
它提供
InvalidValueError:setPosition:不是LatLng或LatLngLiteral:在属性lat:不是数字
如何像在自定义字段中那样运行45.4924038,9.2040718
?
请尝试使用+
一元运算符,它的工作原理与parseFloat()
:类似
var lat = +mylatLg[0];
var lng = +mylatLg[1];
console.log(+"45.4924001");
console.log(+"9.206260499999985");
您需要使用parseFloat
而不是parseInt
。这将把字符串解析为浮点值。或者只尝试使用Number
进行强制转换,例如Number('9.206260499999985')
将生成浮点值9.20626099999985。