我是一个LINQ to XML新手,也是一个KML新手; 所以忍受我.
我的目标是从KML文件中提取单个地标.我的KML如此开始:
<?xml version="1.0" encoding="utf-8"?>
<Document xmlns="http://earth.google.com/kml/2.0">
<name>Concessions</name>
<visibility>1</visibility>
<Folder>
<visibility>1</visibility>
<Placemark>
<name>IN920211</name>
<Style>
<PolyStyle>
<color>80000000</color>
</PolyStyle>
</Style>
<Polygon>
<altitudeMode>relativeToGround</altitudeMode>
<outerBoundaryIs>
<LinearRing>
<coordinates>11.728374,1.976421,0 11.732967,1.965322,0 11.737225,1.953161,0 11.635858,1.940812,0 11.658102,1.976874,0 11.728374,1.976421,0 </coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
<Placemark>
...
Run Code Online (Sandbox Code Playgroud)
这是我得到的:
Dim Kml As XDocument = XDocument.Load(Server.MapPath("../kmlimport/ga.kml"))
Dim Placemarks = From Placemark In Kml.Descendants("Placemark") _
Select Name = Placemark.Element("Name").Value
Run Code Online (Sandbox Code Playgroud)
到目前为止没有好处 - Kml.Descendants("Placemark")给了我一个空的枚举.文档已正确加载 - 因为KML.Descendants包含每个节点.对于它的价值,这些查询也是空的:
Dim foo = Kml.Descendants("Document")
Dim foo = Kml.Descendants("Folder")
Run Code Online (Sandbox Code Playgroud)
有人能指出我正确的方向吗?从优秀的Linq到XML教程的链接的奖励点 - 我在网上找到的那些在非常简单的场景中停止.
有没有人有任何以编程方式将图标绘制为KML中的矢量的实际示例?具体来说,我在给定坐标处具有幅度和方位角的数据,并且我希望基于这些值生成图标(或其他图形元素).
关于如何处理它的一些想法:
图像目录(强力方式):制作360个不同图像文件的图像控制器(可能批量旋转单个图像),每个图像文件指向相应的方位角.我见过像" Excel to KML " 这样的东西,但我正在寻找可以在程序中使用的代码,而不是Web实用程序.问题:箭头不包含幅度上下文,因此必须是标签.我宁愿动态地拉长箭头.
在KML中创建线:也许创建一个公式,在坐标点处创建一条原点线,线的长度与大小成比例,并根据方位角成角度.然后会有两条线,可能是30度左右,从前一条线的末端延伸出来以形成箭头.问题:不是单独的图像图标,因此不确定它在KML中的工作方式.还不确定生成此算法有多容易.
单独的图像生成:也许创建一个使用imagemagick或类似的PHP文件以类似于上面的方法动态生成.png文件,然后使用URI"domain.tld/imagegen.php?magnitude =链接到图标magvalue&方位角= azmvalue".问题:仍然存在实际编写图像生成算法的问题.
所以,问题是:有没有其他人提出程序化矢量(而不仅仅是箭头)生成的解决方案?
你好.我正在开发一个项目,它(理想情况下)需要渲染大型复杂的KML文件作为MapKit MKMapView上的叠加/叠加.
我已经尝试过Apple的示例文档提供的KML解析器,并且它根本无法按需执行.现在,我想知道是否有人知道另一个可用的解决方案.
我想将我的kml(或xml)文件与地点一起使用,但同时可以搜索地点,使用路线或"共享地图"功能.当我尝试在Google或Bing中执行此操作时,一旦我使用KML文件并搜索新地点,我就会丢失我的KML地标.
有没有办法用Google或Bing地图做到这一点?
我有一个特定区域的地图,我需要确定一个给定的位置 - 带有lat-lon坐标 - 是否属于覆盖此地图的任何网格.
我决定使用Google Earth将我给定区域的地图划分为1 km x 1 km方格网格 - 使用CTRL + L启用方格网并缩放到适当的比例,使网格线彼此相距1000米 - 并将整个数据提取为KML,以获取地图中每个网格的角点的纬度和经度值,并从那里进行查找 - 以查看给定的lon/lat是否落入任何方格,如果它确实,哪个网格等 - 但我不知道是否可以这样做 - 如果谷歌地球允许我以KML格式提取自己的方格网格坐标 - .
有人可以提供有关这是否可能的任何信息,如果可能的话,如何做到这一点?
我正在使用Google Maps KML图层点击事件.
我正在使用此代码:
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(41.875696, -87.624207),
zoom: 11,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
var ctaLayer = new google.maps.KmlLayer('https://sites.google.com/site/anoopkml123/kml/ab9Plan0520.kmz');
ctaLayer.setMap(map);
google.maps.event.addListener(ctaLayer, 'click', function(kmlEvent) {
alert(kmlEvent.featureData.name);
});
}
Run Code Online (Sandbox Code Playgroud)
有时alert(kmlEvent.featureData.name)
显示一个数字,但有时它是'未定义'.有时obj.featuredData.id
为null(ZERO_RESULTS状态位于状态字段中).
我有一个kml文件(驻留在本地),我想在我正在开发的应用程序中的地图上显示.在我的搜索中,我发现了这篇文章:如何使用kml文件在地图上绘制路径?几次.我发现这种方法相当冗长.
我只想显示我的kml文件定义的标记.有没有办法在不解析文件的情况下执行此操作?毕竟,kml和Maps API都是Google的.有没有办法告诉该API根据特定的kml文件加载地图?
如何使用 Matplotlib 创建经/纬度图,该图可以导出到 Google Earth,并且点可以正确显示在 GE 上。图片可以在这里看到: https: //i.stack.imgur.com/S2BX7.jpg
似乎我导出的图形周围总是有一个轻微的边框,因此我在图中定义的点在 GE 中是关闭的
x = [0, 10, 10, 0, 0]
y = [10, 10, 0, 0, 10]
x1=[0,1,2,3,4,5,6,7,8,9,10]
fig = Figure(facecolor=None, frameon=False)
ax = fig.add_axes([0,0,1,1])
ax.axis('off')
ppl.plot(x, y, 'r', axes=ax)
ppl.plot(x, y, '.b', axes=ax)
ppl.plot(x1, x1, 'g', axes=ax)
ppl.axis('off')
ppl.tight_layout(0,h_pad=0, w_pad=0)
border1 = ppl.axis(bbox_inches='tight')
ppl.show()
pngName = 'temp.png'
py.savefig(pngName, bbox_inches='tight', pad_inches=0, transparent=True)
bottomleft = (border1[0],border1[2])
bottomright = (border1[1],border1[2])
topright = (border1[1],border1[3])
topleft = (border1[0],border1[3])
kml = simplekml.Kml()
ground = kml.newgroundoverlay(name='GroundOverlay')
ground.icon.href …
Run Code Online (Sandbox Code Playgroud) 我用 python 编写了一个脚本,它将使用 simplekml python 包将 CSV 文件转换为 KML 文件。它尚未完成,因为它还需要根据我的数据值之一对我的点进行缩放和着色。现在我正在尝试这个 if/else 只是为了看看我是否可以使用共享样式,然后编辑每个点的颜色和比例(我计划更改它以使用一系列颜色,但现在我'我只是想弄清楚什么有效,什么无效)。我的数据有 5000 行,因此我想使用共享样式来使生成的 KML 尽可能短,然后使用 for 循环分配颜色和比例以及架构数据。
我的问题是这样的: if/else 执行,但它将共享样式图标颜色更改为柠檬绿。结果是每个点都是石灰绿色的。有没有办法使用共享样式并仅编辑颜色和比例而不覆盖共享样式?如果我删除共享样式,颜色会按预期工作,但我的 KML 文件很大。我对 python 很陌生,我上周才学的。因此,我们非常感谢任何帮助或提示。
编辑:似乎我无法完成我打算对那里的共享样式所做的事情。我可以使用 if/else 来比较和分配颜色,但只有当我摆脱共享样式时它才有效。我认为这会覆盖一切。然而,如果有办法做到这一点,这将使我的输出文件变得更小(使用共享样式时,它们约为 4mb,不使用共享样式时,它们约为 7mb,我知道这将在将来用于更大的数据集)。
这是我的代码供参考:
import simplekml
import csv
import math
kml = simplekml.Kml()
style = simplekml.Style() #creates shared style for all points
style.iconstyle.icon.href ='http://maps.google.com/mapfiles/kml/shapes/target.png' #can change to any desired icon URL
style.iconstyle.scale = 1
schema = kml.newschema(name= '') #creates schema
schema.newsimplefield(name= 'realization', type = 'string', display name = 'Realization')
schema.newsimplefield(name= 'diameter', type = …
Run Code Online (Sandbox Code Playgroud) 目前我正在寻找一种解决方案,将 geojson 文件转换为正确的谷歌地图上的经纬度,如下所示:
井.geojson:
{
"type": "FeatureCollection",
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"features": [{
"type": "Feature",
"properties": {
"WDB_ID": 1,
"SRC_DATA": "RDI DWQI Database",
"STD_WELL_I": "RDI_DWQI_1",
"OTH_WELL_I": null,
"PROVINCE": "Kampong Cham",
"DISTRICT": "Batheay",
"COMMUNE": "Batheay",
"VILLAGE": "Batheay",
"VILLAGE_ID": 3010102,
"CONDITION": null,
"CONT_NAME": null,
"CONT_PHONE": null,
"CONT_QUAL": null,
"CONT_SECT": null,
"FACILITY": "School",
"FACILITY_N": "Unknown",
"OWNER_NAME": null,
"OWNER_PHON": null,
"WGS_E": 494022,
"WGS_N": 1326178,
"MSL_APPROX": 9,
"WELL_TYPE": "Drilled Well",
"DRI_END_DA": "01-Jan-06",
"DRI_TOT_DE": 36.0,
"PUMP_INSTA": "Unknown",
"PUMP_TYPE": null,
"PUMP_MODEL": …
Run Code Online (Sandbox Code Playgroud) kml ×10
google-maps ×4
google-earth ×2
python ×2
algorithm ×1
android ×1
bing-maps ×1
geojson ×1
geolocation ×1
geometry ×1
gis ×1
iphone ×1
javascript ×1
linq-to-xml ×1
mapkit ×1
matplotlib ×1
mkmapview ×1
ogr ×1
simplekml ×1
vb.net ×1
vector ×1