我想根据纬度和经度从Google地球获取高程数据,但我无法做到这一点.我不确定我做错了什么,但我的代码如下所示.
def getElevation(locations,sensor="true", **elvtn_args):
elvtn_args.update({
'locations': locations,
'sensor': sensor
})
url = ELEVATION_BASE_URL
params = urllib.parse.urlencode(elvtn_args)
baseurl = url +"?"+ params;
req = urllib.request.urlopen(str(baseurl));
response = simplejson.load(req);
Run Code Online (Sandbox Code Playgroud)
而我得到的错误是:
Traceback (most recent call last):
File "D:\GIS\Arctools\ElevationChart - Copy.py", line 85, in <module>
getElevation(pathStr)
File "D:\GIS\Arctools\ElevationChart - Copy.py", line 45, in getElevation
response = simplejson.load(req);
File "C:\Python32\lib\json\__init__.py", line 262, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "C:\Python32\lib\json\__init__.py", line 307, in loads
return _default_decoder.decode(s)
File "C:\Python32\lib\json\decoder.py", line 351, in decode
obj, end = self.raw_decode(s, …Run Code Online (Sandbox Code Playgroud) 我是Python的新手.我正在研究gps文件.我需要将包含所有gps数据的CSV文件转换为kml文件.下面是我正在使用的python中的代码:
import csv
#Input the file name.
fname = raw_input("Enter file name WITHOUT extension: ")
data = csv.reader(open(fname + '.csv'), delimiter = ',')
#Skip the 1st header row.
data.next()
#Open the file to be written.
f = open('csv2kml.kml', 'w')
#Writing the kml file.
f.write("<?xml version='1.0' encoding='UTF-8'?>\n")
f.write("<kml xmlns='http://earth.google.com/kml/2.1'>\n")
f.write("<Document>\n")
f.write(" <name>" + fname + '.kml' +"</name>\n")
for row in data:
f.write(" <Placemark>\n")
f.write(" <name>" + str(row[1]) + "</name>\n")
f.write(" <description>" + str(row[0]) + "</description>\n")
f.write(" <Point>\n")
f.write(" <coordinates>" + str(row[3]) …Run Code Online (Sandbox Code Playgroud) 我正在构建一个需要地图的C#/ Winforms应用程序(谷歌地图,Bing地图等).但我对ToU(许可证) - 非商业用途等非常困惑.
我的问题:
为了商业目的,您会建议(最好是免费)嵌入winforms应用程序的映射提供程序.
如果应用程序处于"离线"状态,即无法从映射服务器获取切片,您会建议使用哪种映射提供程序.
在我阅读ToU中的非商业用途条款之前,谷歌地球似乎很有希望,你知道通过购买许可证是否可以豁免吗?任何商业替代品?
我试图保护我的KML文件,免于下载或轻松提取其数据.我想要的只是在google maps或google earth中查看的文件,但不允许任何人下载它或"轻松"提取数据(kml文件不会公开发布).我的kml文件是深度和独家分析的结果,这是我想要隐藏竞争对手的签名.
还有任何替代方法可以将kml转换为无法从中轻松获取数据的格式.我的KML文件包含3D多边形.
我理解可以看到的所有内容的概念都可以以某种方式下载或提取,
是否可以在Java Swing应用程序中嵌入GoogleEarth视图?如果是这样,你能指点我一个解释如何做的教程吗?
我有一个使用Google Earth的Windows窗体应用程序,用户可以在地图上绘制多边形,用作地理围栏.
我想做的是能够缩放到多边形,只需点击一下按钮就可以很好地适应屏幕.一种缩放以适应功能.
找到多边形的中心并将Google Earth相机设置为该纬度/长度很容易.
我需要的是一个算法,它采用一个lats\longs,屏幕高度\宽度的边界框,然后确定设置相机的高度.
有没有人有这个算法或知道哪里可以找到?
谢谢!!
google-earth geospatial google-earth-plugin computational-geometry
是否有任何开源库(最好是python)将kml文件转换为图像文件?
我有一个基于Web的开源应用程序,允许用户在Google地球地图上绘制形状,我想为他们提供一个包含他们绘制的形状的地图的PDF.
现在向用户提供了使用Print Screen或导出kml的说明,但前者看起来有点蹩脚,后者除非能够访问其他软件,否则不会给他们提供图像.
这是个梦想吗?
我想问一下Google Earth API是否可用于开发Android应用程序.如果谷歌地球api不适用于Android,有没有任何地图api可以在网络上使用android?
我正在寻找使用Timestamp元素创建KML地标.这本身很容易做到,但我不喜欢Google Earth的行为只显示最初加载KML时的一小段时间.我希望它默认显示整个时间范围(以及所有地标).
有没有办法做到这一点?我没有在Google地球中看到任何设置,也没有看到KML文档中的任何设置.
我正在考虑的一个替代方案是基本上复制每个地标,并且在单独的文件夹中有1个设置有时间戳,1个没有.文件夹将使用单选按钮选择功能.如果可能的话,我想避免这种情况,因为KML可能有数千个地标,并且复制节点似乎是浪费.
以下是来自此源代码的示例,如果您想要查看我所说的行为,那么KML会带有地标.
更新:我看到的时间滑块没有默认为包含的KML地标的完整范围的行为似乎是因为文件通过网络链接加载到本地文件.在这种情况下,我不确定如何控制时间滑块的行为.我可以让链接做一个"飞到查看刷新",它正确设置时间滑块,但我不想将相机移动到纬度/经度,因为我每4秒刷新一次.
我想到开发一个桌面应用程序,模拟绕地球轨道运行的卫星摄像机.我想在桌面应用程序中使用Google Earth,而不是将其嵌入到网站中.显然,Google地球API提供的唯一选项是网页
我在Stack Overflow帖子中读到,使用QT可以在桌面应用程序中嵌入Google Earth,但是引用网站中的大多数链接都被破坏,因此缺少有关该主题的大量信息.此外,我发现的所有信息都非常陈旧.
有谁能建议我在桌面应用程序中嵌入Google Earth的方法?我有一些C++,ADA和Visual Basic的经验,但不知道QT.
google-earth ×10
kml ×4
python ×3
google-maps ×2
android ×1
bing-maps ×1
c# ×1
c++ ×1
csv ×1
embed ×1
geospatial ×1
google-api ×1
gps ×1
java ×1
open-source ×1
python-3.x ×1
qt ×1
security ×1
swing ×1
timestamp ×1
winforms ×1