如何将逗号分隔的字符串转换为数字?

时间:2018-11-22 14:04:49

标签: javascript google-maps

我在自定义字段中有一些坐标:

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:在   属性纬度:不是数字

如何像在自定义字段中一样运行45.4924038,9.2040718

2 个答案:

答案 0 :(得分:4)

请尝试使用if(first && (!checkSecond || second)) { } else { } 一元运算符,该运算符的工作原理类似于+

parseFloat()

var lat = +mylatLg[0];
var lng = +mylatLg[1];

答案 1 :(得分:3)

您需要使用ItemContainerStyle而不是ContentPresenter。这会将字符串解析为浮点数。 或者只是尝试使用parseFloat进行投射,例如parseInt将产生浮点数9.206260499999985。