python读取kml为geojson

python读取kml为geojson

试过用ogr读取kml,地理数据读取没问题,但是kml里面的属性数据读取我还没找到方法,后来在github上找到了一个叫做fastkml的类库:

https://github.com/LawAlias/fastkml

在这里还要借助shapely用于将读取出的kml数据进行geojson的结构化

一、类库引用

from fastkml import kml

from fastkml import geometry

from shapely.geometry import mapping

二、将用到的操作封装了一下:

https://github.com/LawAlias/kml2geojson

Shapely 安装以后出现下面这个错误:  

    from shapely.coords import CoordinateSequence
  File "C:\ProgramData\Anaconda3\envs\db\lib\site-packages\shapely\coords.py", line 8, in <module>
    from shapely.geos import lgeos
  File "C:\ProgramData\Anaconda3\envs\db\lib\site-packages\shapely\geos.py", line 155, in <module>
    _lgeos = CDLL(os.path.join(sys.prefix, 'Library', 'bin', 'geos_c.dll'))
  File "C:\ProgramData\Anaconda3\envs\db\lib\ctypes\__init__.py", line 348, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] 找不到指定的模块。
解决方案:

根据错误提示,打开 C:\ProgramData\Anaconda3\envs\db\lib\site-packages\shapely\geos.py 155 行  打印出  os.path.join(sys.prefix, 'Library', 'bin', 'geos_c.dll')路径

在我安装的shapely    C:\ProgramData\Anaconda3\envs\db\Lib\site-packages\shapely\DLLs 这个文件夹中包含  geos_c.dll 等dll ,将这几个dll 复制到  os.path.join(sys.prefix, 'Library', 'bin', 'geos_c.dll') 这个文件所在的文件夹中就好了
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值