Generating GeoJson with javascript

Generating GeoJson with javascript

本文关键字:javascript with GeoJson Generating      更新时间:2023-09-26

我得到一个横向/纵向数组与ajax

$.ajax({
    type: "POST",
    url: '../m/m_share.php',
    data: 'zone=' + zone,
    dataType: 'json',
    success: function(tab) {
        var i = 0;
        var size = tab.length;
        for (i = 0; i < size; i++) {
            var lat = tab[i]['lat'];
            var lon = tab[i]['lon'];
        }
    }

"tab"参数是一个jscon_encode(数组)由php发送我的lat/lon请求从db。我想做的是创建一个地理json,如这个,但与我的经纬度数据。

var geojson =
   {"name":"NewFeatureType",
    "type":"FeatureCollection",
    "features":[{"type":"Feature",
                 "geometry":{"type":"LineString",
                             "coordinates":[[169.13693,-44.696476,296],[169.134602,-44.69764,295],[169.129983,-44.701164,299]]},
    "properties":null}]};

我试图将纬度保存在变量

  $.ajax({
            type: "POST",
            url: '../m/m_share.php',
            data: 'zone=' + zone,
            dataType: 'json',
            success: function(tab) {
                var i = 0;
                var size = tab.length;
                for (i = 0; i < size; i++) {
                     var lat = tab[i]['lat'];
                     var lon = tab[i]['lon'];
                   if(i===size){
                      coord = coord+'['+lat+','+lon+']';
                       alert(coord);
                    }
                    else{
                      coord = coord+'['+lat+','+lon+']'+',';
                    }
                }
                }
            });

然后用我的coord var替换geoJson中的纬度/纬度,但似乎传单不喜欢它"无效的LatLng对象:(NaN, NaN)"。

创建一个geojson对象变量

var geojson = {
    "name":"NewFeatureType",
    "type":"FeatureCollection",
    "features":[{
        "type":"Feature",
        "geometry":{
            "type":"LineString",
            "coordinates":[]
        },
        "properties":null
    }]
};

那么你就把它推入坐标数组

geojson.features[0].geometry.coordinates.push([lat, lng]);

Pedro Estrada提到的方法是正确的。但是需要做一点小小的修正。

GeoJson标准要求地理点具有(经度,纬度)约定。

var gj = {
    "name":"MyFeatureType",
    "type":"FeatureCollection",
    "features":[]
};

推送一个新的特性对象

gj.features.push({ "type": "Feature","geometry": {"type": "LineString","coordinates": []},"properties": null });

为新推送的对象添加一个坐标:

lon=20;
lat=10;
gj.features[0].geometry.coordinates.push([lon,lat]);