使用 javascript 生成 GeoJson
Generating GeoJson with javascript
我得到一个 lat/lon 数组 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(数组),由我的 lat/lon 来自 db 的请求的 php 发送。
我想做的是用我的 lat/lon 数据创建一个像这样的 geojson。
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}]};
我试图将 lat/lon 保存在 var
中
$.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+']'+',';
}
}
}
});
然后用我的坐标变量替换 geoJson 中的 lat/lon 但传单似乎不喜欢它 "Invalid LatLng object: (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]);
我得到一个 lat/lon 数组 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(数组),由我的 lat/lon 来自 db 的请求的 php 发送。 我想做的是用我的 lat/lon 数据创建一个像这样的 geojson。
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}]};
我试图将 lat/lon 保存在 var
中 $.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+']'+',';
}
}
}
});
然后用我的坐标变量替换 geoJson 中的 lat/lon 但传单似乎不喜欢它 "Invalid LatLng object: (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]);