如何使用Python从KML服务器获取数据?
本质上,我试图从Python脚本中模仿Google Earth的行为,从NetworkLink获取数据。阅读,我发现我需要使用BBOX变量提供一个边界框。然而,似乎我需要在最初请求数据后请求此如何使用Python从KML服务器获取数据?,python,kml,google-earth,Python,Kml,Google Earth,本质上,我试图从Python脚本中模仿Google Earth的行为,从NetworkLink获取数据。阅读,我发现我需要使用BBOX变量提供一个边界框。然而,似乎我需要在最初请求数据后请求此 关于如何在Google Earth之外获取这些数据的任何建议?Google Earth Pro可以被认为是一种专门的web浏览器,除了图像之外,还可以获取KML和KMZ内容,并在3D全球环境中呈现这些内容。在封面下,Google Earth基于当前视图和KML内容(如网络链接)构建URL。在Network
关于如何在Google Earth之外获取这些数据的任何建议?Google Earth Pro可以被认为是一种专门的web浏览器,除了图像之外,还可以获取KML和KMZ内容,并在3D全球环境中呈现这些内容。在封面下,Google Earth基于当前视图和KML内容(如网络链接)构建URL。在NetworkLink中调用URL的Python代码需要模仿Google Earth调用目标URL的方式 如果目标KML具有viewFormat或httpQuery元素,则根据指定的参数更新获取的实际URL。viewFormat和httpQuery使用命名字段定义模板,这些字段用适当的值填充并附加到URL 带有target href和viewFormat的网络链接定义示例
http://www.example.com/kml
BBOX=[bboxWest]、[bboxSouth]、[bboxEast]、[bboxNorth]
字符串BBOX=[bboxWest]、[bboxSouth]、[bboxast]、[bboxNorth]
是一个模板,它将替换括号中的命名参数以获得适当的值,并将结果附加到目标URL的查询字符串中。表达式[bboxWest]和[bboxEast]用视图边界框的最西和最东经度值替换,[bboxNorth]和[bboxSouth]用视图中的最大和最小纬度值替换
下面是需要通过HTTP GET请求获取的实际URL的示例
http://www.example.com/kml?BBOX=-180,-90,180,90
可显示在viewFormat元素中的参数列表
- [lookatLon],[lookatLat]-该点的经度和纬度 正在观看
- [lookatRange],[lookattit],[lookatHeading]-
元素使用的值(请参见
的说明,
,以及KML元素中的
) - [lookatTerrainLon],
[lookatTerrainLat],[lookatTerrainLat]-以度/米为单位的地形上的点,
正在查看 - [cameraLon]、[cameraLat]、[cameraAlt]-相机视点的度数/米
- [horizFov]、[vertFov]-摄像机的水平、垂直视野
- [horizPixels],[vertPixels]-三维查看器的像素大小
- [TerraineEnabled]-指示3D查看器是否显示地形
http://www.example.com/kml
BBOX=[bboxWest]、[bboxSouth]、[bboxEast]、[bboxNorth];
摄像机=[lookatLon]、[lookatLat]、[lookatRange]、[LookAtlit]、[lookatHeading];
视图=[horizFov]、[vertFov]、[horizPixels]、[vertPixels]、[TerraineEnabled];
LOOKAT=[LookAtterRinlon]、[LookAtterRinlat]、[LookAtterRinalt]
客户端=[clientVersion],[kmlVersion],[clientName],[language]
这里是一个可以获取的URL,用于容纳上述NetworkLink
http://www.example.com/kml?client=7.3.3.7786,2.2,Google+Earth+Pro,en&
BBOX=-180,-90,180,90;CAMERA=0,0,0,0,0;VIEW=0,0,0,0,0;LOOKAT=0,0,0