在传单中将坐标传递给LatLng函数的问题

时间:2018-11-06 21:48:01

标签: javascript arrays json leaflet geojson

我试图弄清楚如何将传单中的坐标传递给L.LatLng函数,以便它可以映射坐标。

我可以成功加载数据,看起来像这样:

//This is the structure of the geojson data, as an example
var SanFranciscoData = {"type":"FeatureCollection", "features": [
{"type":"Feature","geometry":{"type":"Point","coordinates":[-96.97593699999999,32.889954000000046]}

//Load in the geojson
d3.json("data/dataPoints.json", function(SFData) {
        var SFData = SanFranciscoData.features
        })

    //pass in coordinates to the L.LatLng leaflet function
    SFData.forEach(function(d) {
        d.latLong = new L.LatLng(d.features.geometry.coordinates[1],
                                d.features.geometry.coordinates[0]);
         })

我也尝试过,如在示例中看到的那样:

var coords = SFData.feature.geometry.coordinates;

以上两种方法均得出相同的结果:坐标未定义。有人可以告诉我我在做什么错吗?我不确定如何使用对象符号访问坐标数组以访问经纬度。任何帮助,不胜感激!

1 个答案:

答案 0 :(得分:0)

好..这有效:

SFData.forEach(function(d) {
        var coords = d.geometry.coordinates
        console.log(coords)
        d.latLong = new L.LatLng(coords[1],
                                coords[0]);

    })

似乎需要使用.forEach函数定义坐标!