【问题标题】:Formatting Array into Lat Lng Array for Google Map API Format in Javascript将数组格式化为 Javascript 中 Google Map API 格式的 Lat Lng 数组
【发布时间】:2020-02-15 17:33:38
【问题描述】:

如何格式化这个数组:

array = ["37.772, -122.214", "-27.467, 153.027"]

谷歌地图 API 的 Lat/Lng 如下所示:

flightPlanCoordinates = [
{lat: 37.772, lng: -122.214},
{lat: -27.467, lng: 153.027}];

我正在尝试这段代码:

let latLngArray = [];
for (let i = 0; i < array.length; i++) {
  const gData = new google.maps.LatLng(array[i][0], array[i][1]);
  latLngArray.push(gData);
}

但它导致 lat lng 没有价值:

【问题讨论】:

    标签: javascript arrays json google-maps


    【解决方案1】:

    使用map,拆分和销毁

    const flightPlanCoordinates = ["37.772, -122.214", "-27.467, 153.027"]
      .map(coor => { 
        const [lat,lng] = coor.split(","); 
        return {lat:+lat,lng:+lng} 
      })
    
    console.log(flightPlanCoordinates)
    
    // OR mapping to number after splitting
    
    const flightPlanCoordinates1 = ["37.772, -122.214", "-27.467, 153.027"]
      .map(coor => { 
        const [lat,lng] = coor.split(",").map(Number); 
        return {lat,lng} 
      })
    
    console.log(flightPlanCoordinates1)

    【讨论】:

    • 反对者可能会评论上述工作解决方案的问题
    【解决方案2】:

    使用mapsplit 方法。

    const array = ["37.772, -122.214", "-27.467, 153.027"];
    
    const updated = array.map(item => {
      const [lat, lng] = item.split(", ").map(x => Number(x));
      return { lat, lng };
    });
    
    console.log(updated);

    【讨论】:

    • 打败你 ;)
    • item.split(",").map(Number); 更优雅,但不要偷它;)
    • 大部分答案都可以给出我想要的格式化值,但这正好符合我的情况......
    【解决方案3】:

    slice 的另一种方法可能是:

    const array = ["37.772, -122.214", "-27.467, 153.027"];
    
    let flightPlanCoordinates = array.map(coor => ({lat: +coor.slice(0, coor.indexOf(',')),
                                            	lng: +coor.slice(coor.indexOf(',') +1)}));
    
    console.log(flightPlanCoordinates)

    【讨论】:

    • Split 比 slice 更整洁,你访问字符串两次
    • 我同意!这只是为了变体:)
    • 好的。我只是想指出这一点。我认为迄今为止最好的版本是我的.map(coor =&gt; { const [lat,lng] = coor.split(",").map(Number); return {lat,lng} })
    • 顺便说一句,你不需要, -1
    • 是的,那个更优雅
    猜你喜欢
    • 1970-01-01
    • 2013-03-23
    • 2023-03-11
    • 1970-01-01
    • 2023-02-21
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多