我有一个带坐标的JSON,用于线条特征。我正在努力将这个JSON转换成GeoJSON格式,以便能够绘制它。下面是Json和Python代码。我正试图用python3x格式化它。我想我就快到了,只是在线路部分与for循环作斗争。我只需要第一组坐标就可以了。谢谢
[{
"type": "linestring",
"points": [{
"lat": 37.918647943,
"lon": 23.761094017
}, {
"lat": 37.764186425,
"lon": 24.043867088
}, {
"lat": 37.762555035,
"lon": 24.045284834
}, {
"lat": 37.759292113,
"lon": 24.048120252
}, {
"lat": 37.757909899,
"lon": 24.050360246
}, {
"lat": 37.754357436,
"lon": 24.056116962
}, {
"lat": 37.752949276,
"lon": 24.058567669
}, {
"lat": 37.751417202,
"lon": 24.061233635
}, {
"lat": 37.74953827,
"lon": 24.064503082
}, {
"lat": 37.748200181,
"lon": 24.065451555
}, {
"lat": 37.747314483,
"lon": 24.065389252
}],
"entity_id": "77101",
"popup": "\u003Ch5\u003E\u039a\u03a5\u03a4 \u039b\u03b1\u03c5\u03c1\u03af\u03bf\u03c5 - \u039a\u03a5\u03a4 \u0391\u03c1\u03b3\u03c5\u03c1\u03bf\u03cd\u03c0\u03bf\u03bb\u03b7\u03c2\u003C\/h5\u003E\n\u003Cdiv\u003E\u003C\/div\u003E\n\u003Cdiv\u003E400 kV\u003C\/div\u003E\n",
"path": "{\u0022color\u0022:\u0022#3388ff\u0022,\u0022opacity\u0022:\u00221.0\u0022,\u0022stroke\u0022:true,\u0022weight\u0022:3,\u0022className\u0022:\u0022id_77101 red\u0022,\u0022fill\u0022:\u0022depends\u0022,\u0022fillColor\u0022:\u0022*\u0022,\u0022fillOpacity\u0022:\u00220.0\u0022}"
}, {
"type": "linestring",
"points": [{
"lat": 38.524903863,
"lon": 23.167894542
}, {
"lat": 38.524705211,
"lon": 23.167839471
}, {
"lat": 38.137414714,
"lon": 23.828298758
}, {
"lat": 38.134480753,
"lon": 23.830543492
}, {
"lat": 38.134170241,
"lon": 23.832346632
}, {
"lat": 38.133976038,
"lon": 23.834457466
}, {
"lat": 38.134049661,
"lon": 23.835541307
}, {
"lat": 38.133833198,
"lon": 23.835427687
}],
"entity_id": "77102",
"popup": "\u003Ch5\u003E\u039a\u03a5\u03a4 \u0391\u03b3.\u03a3\u03c4\u03b5\u03c6\u03ac\u03bd\u03bf\u03c5 - \u039a\u03a5\u03a4 \u039b\u03ac\u03c1\u03c5\u03bc\u03bd\u03b1\u03c2\u003C\/h5\u003E\n\u003Cdiv\u003E\u003Cdiv class=\u0022pop-up-label\u0022\u003EDescription:\u003C\/div\u003E 2B\u0026#039;B\u0026#039;\/400\n\u003C\/div\u003E\n\u003Cdiv\u003E400 kV\u003C\/div\u003E\n",
"path": "{\u0022color\u0022:\u0022#3388ff\u0022,\u0022opacity\u0022:\u00221.0\u0022,\u0022stroke\u0022:true,\u0022weight\u0022:3,\u0022className\u0022:\u0022id_77102 red\u0022,\u0022fill\u0022:\u0022depends\u0022,\u0022fillColor\u0022:\u0022*\u0022,\u0022fillOpacity\u0022:\u00220.0\u0022}"
}, {
"type": "linestring",
"points": [{
"lat": 41.393877564,
"lon": 23.311903052
}, {
"lat": 41.391621317,
"lon": 23.314187524
}, {
"lat": 41.389758983,
"lon": 23.316073
}, {
"lat": 40.699766659,
"lon": 22.916499355
}, {
"lat": 40.698006009,
"lon": 22.918954289
}, {
"lat": 40.695974697,
"lon": 22.920407418
}, {
"lat": 40.693381223,
"lon": 22.922437615
}, {
"lat": 40.692491512,
"lon": 22.922664982
}],
"entity_id": "77103",
"popup": "\u003Ch5\u003E\u039a\u03a5\u03a4 \u0398\u03b5\u03c3\/\u03bd\u03af\u03ba\u03b7\u03c2 - \u0392\u03bf\u03c5\u03bb\u03b3\u03b1\u03c1\u03af\u03b1\u003C\/h5\u003E\n\u003Cdiv\u003E\u003Cdiv class=\u0022pop-up-label\u0022\u003EDescription:\u003C\/div\u003E B\u0026#039;B\u0026#039;\/400\n\u003C\/div\u003E\n\u003Cdiv\u003E400 kV\u003C\/div\u003E\n",
"path": "{\u0022color\u0022:\u0022#3388ff\u0022,\u0022opacity\u0022:\u00221.0\u0022,\u0022stroke\u0022:true,\u0022weight\u0022:3,\u0022className\u0022:\u0022id_77103 red\u0022,\u0022fill\u0022:\u0022depends\u0022,\u0022fillColor\u0022:\u0022*\u0022,\u0022fillOpacity\u0022:\u00220.0\u0022}"
}, {
"type": "linestring",
"points": [{
"lat": 40.692461619,
"lon": 22.922357749
}, {
"lat": 40.755326724,
"lon": 22.850940857
}, {
"lat": 40.758623291,
"lon": 22.848183012
}, {
"lat": 41.065846201,
"lon": 22.658634921
}, {
"lat": 41.067743292,
"lon": 22.655239987
}, {
"lat": 41.112288315,
"lon": 22.575224675
}, {
"lat": 41.113750897,
"lon": 22.572584693
}, {
"lat": 41.116059427,
"lon": 22.568437392
}, {
"lat": 41.12034928,
"lon": 22.564997041
}, {
"lat": 41.125058394,
"lon": 22.561237357
}, {
"lat": 41.129138167,
"lon": 22.561183964
}],
"entity_id": "77104",
"popup": "\u003Ch5\u003E\u039a\u03a5\u03a4 \u0398\u03b5\u03c3\/\u03bd\u03af\u03ba\u03b7\u03c2 - FYROM\u003C\/h5\u003E\n\u003Cdiv\u003E\u003Cdiv class=\u0022pop-up-label\u0022\u003EDescription:\u003C\/div\u003E B\u0026#039;B\u0026#039;\/400\n\u003C\/div\u003E\n\u003Cdiv\u003E400 kV\u003C\/div\u003E\n",
"path": "{\u0022color\u0022:\u0022#3388ff\u0022,\u0022opacity\u0022:\u00221.0\u0022,\u0022stroke\u0022:true,\u0022weight\u0022:3,\u0022className\u0022:\u0022id_77104 red\u0022,\u0022fill\u0022:\u0022depends\u0022,\u0022fillColor\u0022:\u0022*\u0022,\u0022fillOpacity\u0022:\u00220.0\u0022}"
}, {
"type": "linestring",
"points": [{
"lat": 40.7901584769,
"lon": 23.0480705193
}, {
"lat": 40.7903523946,
"lon": 23.0492358221
}, {
"lat": 40.7901050443,
"lon": 23.0527869346
}, {
"lat": 41.043691983,
"lon": 24.249864576
}, {
"lat": 41.045358111,
"lon": 24.25415432
}, {
"lat": 41.04630753,
"lon": 24.256609089
}, {
"lat": 41.046164193,
"lon": 24.2602733
}],
"entity_id": "77105",
"popup": "\u003Ch5\u003E\u039a\u03a5\u03a4 \u039b\u03b1\u03b3\u03ba\u03b1\u03b4\u03ac - \u039a\u03a5\u03a4 \u03a6\u03b9\u03bb\u03af\u03c0\u03c0\u03c9\u03bd\u003C\/h5\u003E\n\u003Cdiv\u003E\u003Cdiv class=\u0022pop-up-label\u0022\u003EDescription:\u003C\/div\u003E B\u0026#039;B\u0026#039;B\u0026#039;\/400\n\u003C\/div\u003E\n\u003Cdiv\u003E400 kV\u003C\/div\u003E\n",
"path": "{\u0022color\u0022:\u0022#3388ff\u0022,\u0022opacity\u0022:\u00221.0\u0022,\u0022stroke\u0022:true,\u0022weight\u0022:3,\u0022className\u0022:\u0022id_77105 red\u0022,\u0022fill\u0022:\u0022depends\u0022,\u0022fillColor\u0022:\u0022*\u0022,\u0022fillOpacity\u0022:\u00220.0\u0022}"
}, {
"type": "linestring",
"points": [{
"lat": 40.78983174,
"lon": 23.04660084
}, {
"lat": 40.78958078,
"lon": 23.04564668
}, {
"lat": 40.78955252,
"lon": 23.04247145
}, {
"lat": 40.79761609,
"lon": 23.02745817
}, {
"lat": 40.79868402,
"lon": 22.96633164
}, {
"lat": 40.62123973221768,
"lon": 21.72502141299155
}, {
"lat": 40.619958771459004,
"lon": 21.721002325337444
}, {
"lat": 40.61876412645359,
"lon": 21.71725480736431
}, {
"lat": 40.61763871618877,
"lon": 21.71372480244598
}, {
"lat": 40.616253421804615,
"lon": 21.709380286795067
}, {
"lat": 40.6148332836148,
"lon": 21.704927337949705
}, {
"lat": 40.61390429997776,
"lon": 21.70201462068876
}, {
"lat": 40.61517977186133,
"lon": 21.698154785687546
}, {
"lat": 40.616549620077215,
"lon": 21.693351729497877
}, {
"lat": 40.61769071025425,
"lon": 21.689027178782595
}, {
"lat": 40.61787118798994,
"lon": 21.688146238927636
}, {
"lat": 40.617999818469684,
"lon": 21.688271824830505
}],
"entity_id": "77106",
"popup": "\u003Ch5\u003E\u039a\u03a5\u03a4 \u0391\u03bc\u03c5\u03bd\u03c4\u03b1\u03af\u03bf\u03c5 - \u039a\u03a5\u03a4 \u039b\u03b1\u03b3\u03ba\u03b1\u03b4\u03ac\u003C\/h5\u003E\n\u003Cdiv\u003E\u003Cdiv class=\u0022pop-up-label\u0022\u003EDescription:\u003C\/div\u003E 2B\u0026#039;B\u0026#039;\/400\n\u003C\/div\u003E\n\u003Cdiv\u003E400 kV\u003C\/div\u003E\n",
"path": "{\u0022color\u0022:\u0022#3388ff\u0022,\u0022opacity\u0022:\u00221.0\u0022,\u0022stroke\u0022:true,\u0022weight\u0022:3,\u0022className\u0022:\u0022id_77106 red\u0022,\u0022fill\u0022:\u0022depends\u0022,\u0022fillColor\u0022:\u0022*\u0022,\u0022fillOpacity\u0022:\u00220.0\u0022}"
}, {
"type": "linestring",
"points": [{
"lat": 40.692458304,
"lon": 22.922002748
}, {
"lat": 40.69332022,
"lon": 22.921692973
}, {
"lat": 40.696125972,
"lon": 22.919245068
}, {
"lat": 40.797415962,
"lon": 23.020151234
}, {
"lat": 40.797360122,
"lon": 23.023127364
}, {
"lat": 40.79730334,
"lon": 23.02732208
}, {
"lat": 40.7892307,
"lon": 23.04235039
}, {
"lat": 40.78915542,
"lon": 23.04584343
}, {
"lat": 40.78940636,
"lon": 23.04679502
}],
"entity_id": "77107",
"popup": "\u003Ch5\u003E\u039a\u03a5\u03a4 \u0398\u03b5\u03c3\/\u03bd\u03af\u03ba\u03b7\u03c2 - \u039a\u03a5\u03a4 \u039b\u03b1\u03b3\u03ba\u03b1\u03b4\u03ac\u003C\/h5\u003E\n\u003Cdiv\u003E\u003Cdiv class=\u0022pop-up-label\u0022\u003EDescription:\u003C\/div\u003E 2B\u0026#039;B\u0026#039;\/400\n\u003C\/div\u003E\n\u003Cdiv\u003E400 kV\u003C\/div\u003E\n",
"path": "{\u0022color\u0022:\u0022#3388ff\u0022,\u0022opacity\u0022:\u00221.0\u0022,\u0022stroke\u0022:true,\u0022weight\u0022:3,\u0022className\u0022:\u0022id_77107 red\u0022,\u0022fill\u0022:\u0022depends\u0022,\u0022fillColor\u0022:\u0022*\u0022,\u0022fillOpacity\u0022:\u00220.0\u0022}"
}]
下面是Python代码
from sys import argv
from os.path import exists
import simplejson as json
out_file = r"C:\Users\xxxxxx.json"
in_file = r"C:\Users\xxxxxx\Desktop\xxx.json"
data = json.load(open(in_file))
geojson = {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry" : {
"type": "LineString",
"coordinates": [i['lat'], i['lon']]#This line here is not correct. This is where I am struggling.
},
"properties" : d,
} for d in data
for i in d['points']#This line here is not correct. This is where I am struggling.
]
}
output = open(out_file, 'w')
json.dump(geojson, output)
print (geojson)
JSON只是一个数据结构。无法在JSON中嵌入代码。您需要将点附加到每行的列表中,并将每个功能附加到组成GeoJSON的功能列表中
相关问题 更多 >
编程相关推荐