标签: kml

Linq to XML for KML?

我是一个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教程的链接的奖励点 - 我在网上找到的那些在非常简单的场景中停止.

vb.net kml linq-to-xml

6
推荐指数
2
解决办法
5533
查看次数

以KML编程方式创建矢量箭头

有没有人有任何以编程方式将图标绘制为KML中的矢量的实际示例?具体来说,我在给定坐标处具有幅度和方位角的数据,并且我希望基于这些值生成图标(或其他图形元素).

关于如何处理它的一些想法:

  1. 图像目录(强力方式):制作360个不同图像文件的图像控制器(可能批量旋转单个图像),每个图像文件指向相应的方位角.我见过像" Excel to KML " 这样的东西,但我正在寻找可以在程序中使用的代码,而不是Web实用程序.问题:箭头不包含幅度上下文,因此必须是标签.我宁愿动态地拉长箭头.

  2. 在KML中创建线:也许创建一个公式,在坐标点处创建一条原点线,线的长度与大小成比例,并根据方位角成角度.然后会有两条线,可能是30度左右,从前一条线的末端延伸出来以形成箭头.问题:不是单独的图像图标,因此不确定它在KML中的工作方式.还不确定生成此算法有多容易.

  3. 单独的图像生成:也许创建一个使用imagemagick或类似的PHP文件以类似于上面的方法动态生成.png文件,然后使用URI"domain.tld/imagegen.php?magnitude =链接到图标magvalue&方位角= azmvalue".问题:仍然存在实际编写图像生成算法的问题.

所以,问题是:有没有其他人提出程序化矢量(而不仅仅是箭头)生成的解决方案?

algorithm vector kml

6
推荐指数
1
解决办法
4466
查看次数

高效的KML渲染为iPhone上的MapKit叠加层

你好.我正在开发一个项目,它(理想情况下)需要渲染大型复杂的KML文件作为MapKit MKMapView上的叠加/叠加.

我已经尝试过Apple的示例文档提供的KML解析器,并且它根本无法按需执行.现在,我想知道是否有人知道另一个可用的解决方案.

iphone kml mapkit mkmapview

6
推荐指数
1
解决办法
1494
查看次数

在同一张地图上使用KML,地址查询,路线和"分享地图"

我想将我的kml(或xml)文件与地点一起使用,但同时可以搜索地点,使用路线或"共享地图"功能.当我尝试在Google或Bing中执行此操作时,一旦我使用KML文件并搜索新地点,我就会丢失我的KML地标.

有没有办法用Google或Bing地图做到这一点?

google-maps kml geolocation bing-maps

6
推荐指数
1
解决办法
490
查看次数

有没有办法将地图划分为方格网格并从那里检索纬度/经度信息?

我有一个特定区域的地图,我需要确定一个给定的位置 - 带有lat-lon坐标 - 是否属于覆盖此地图的任何网格.

我决定使用Google Earth将我给定区域的地图划分为1 km x 1 km方格网格 - 使用CTRL + L启用方格网并缩放到适当的比例,使网格线彼此相距1000米 - 并将整个数据提取为KML,以获取地图中每个网格的角点的纬度和经度值,并从那里进行查找 - 以查看给定的lon/lat是否落入任何方格,如果它确实,哪个网格等 - 但我不知道是否可以这样做 - 如果谷歌地球允许我以KML格式提取自己的方格网格坐标 - .

有人可以提供有关这是否可能的任何信息,如果可能的话,如何做到这一点?

gis kml google-earth latitude-longitude

6
推荐指数
1
解决办法
5492
查看次数

Google Map KML图层 - 点击事件返回ZERO_RESULTS

我正在使用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状态位于状态字段中).

javascript google-maps kml

6
推荐指数
1
解决办法
2355
查看次数

使用Google Maps Android API v2显示kml文件,无需解析

我有一个kml文件(驻留在本地),我想在我正在开发的应用程序中的地图上显示.在我的搜索中,我发现了这篇文章:如何使用kml文件在地图上绘制路径?几次.我发现这种方法相当冗长.
我只想显示我的kml文件定义的标记.有没有办法在不解析文件的情况下执行此操作?毕竟,kml和Maps API都是Google的.有没有办法告诉该API根据特定的kml文件加载地图?

android google-maps kml google-maps-api-2

6
推荐指数
1
解决办法
6167
查看次数

将 Python 绘图导出为 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 matplotlib kml

5
推荐指数
1
解决办法
1356
查看次数

我可以使用 simplekml 共享样式并更改单个点的样式吗?

我用 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)

python kml google-earth simplekml

5
推荐指数
1
解决办法
3561
查看次数

将具有 CRS "name": "urn:ogc:def:crs:OGC:1.3:CRS84" 的 GeoJson 转换为 Google 地图纬度/经度

目前我正在寻找一种解决方案,将 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)

geometry google-maps kml geojson ogr

5
推荐指数
1
解决办法
5921
查看次数