2017-11-15 5 views
0

私はWebクローラに関するプロジェクトを行っています。
私はウェブサイトからいくつかのデータを得た
Pythonでpandasを使用してGoogleマップのGeoJSONにデータをエクスポートする方法


まず
(GoogleマップAPIを使用)(名前、経度、緯度)
が続いてGoogleマップでそれらのすべてを指し含ま私はいくつかの点の位置を得ますAPI。 - (300points locaiton)
次にJSONファイル

df = pd.DataFrame(total, columns=['name','lat', 'lng']) 
df['lat'] = pd.to_numeric(df['lat']) 
df['lng'] = pd.to_numeric(df['lng']) 

jsonFile = df.to_json(orient='records') 
with open('map.json','w') as f: 
    f.write(jsonFile) 

JSON構造をエクスポートするためのPythonパンダのデータフレームを使用ので、ここでこの

{ 
"name":"臺中女中", 
"lat":24.13604, 
"lng":120.6778 
} 

のように見える問題である:
はどのように私はそれらをインポートすることができますGoogle Map APIを使用してGoogle Map APIを使用する
私はGoogle Map APIドキュメントを読むように試みました。使用するよう教えてください。

map.data.loadGeoJson('map.json'); 

最後に私は間違っていました。エラーメッセージ

uncaught exception: InvalidValueError: not a Feature or FeatureCollection 

Google Map APIはGeoJsonのみをサポートしていますか?
jsonファイルをGeoJsonに変更するにはどうすればよいですか?
またはGoogleマップAPIで使用できるjsonファイルを変更するにはどうすればよいですか。
ありがとうございます。

答えて

1

どのようにjsonファイルをGeoJsonに変更できますか?

あなたはgeojson

を使用することができますここでは例です:

インポート:

import json 
import pandas as pd 
from geojson import Feature, FeatureCollection, Point 

DATAFRAME:

df = pd.DataFrame([{'name': '臺中女中', 'lat': 24.13604, 'lng': 120.6778}]) 

コンベンションGeoJSONにerting:

# columns used for constructing geojson object 
features = df.apply(
    lambda row: Feature(geometry=Point((float(row['lng']), float(row['lat'])))), 
    axis=1).tolist() 

# all the other columns used as properties 
properties = df.drop(['lat', 'lng'], axis=1).to_dict('records') 

# whole geojson object 
feature_collection = FeatureCollection(features=features, properties=properties) 

は、その後、あなたにGeoJSONファイルを保存することができます:

with open('/path/to/your/file.geojson', 'w', encoding='utf-8') as f: 
    json.dump(feature_collection, f, ensure_ascii=False) 
+0

私は '.values.tolist()'を使用する必要がありましたが、まだ動作します。 – AtxTom

関連する問題