如何在不将临时文件写入服务器或依赖第三方库或类的情况下直接生成KML文档并将其返回到浏览器?
Google Maps JavaScript版本3 API 库文档清楚地解释了:
Google Maps API支持用于显示地理信息的KML和GeoRSS数据格式.这些数据格式使用KmlLayer对象显示在地图上,该对象的构造函数采用可公开访问的 KML或GeoRSS文件的URL .
甚至有几个关于如何加载本地数据的Stack Overflow问题:
一些答案指向第三方库可以在本地解析KML而不需要公开文件:
虽然这些解决方案很好,如果您需要保持数据私密性,我只想让开发更容易.在本地运行时,我显然无法解析我的KML,因此失去了我试图测试的功能.我在公共网站上发布了一个通用的KML文件,但是当运行真实时,必须有不同的开发代码来渲染一个东西而不是别的东西.
我可以选择哪些本地开发来呈现公开可用的动态生成的KML文件?
我有什么方法可以在谷歌地图中使用KMZ文件吗?我的KML文件大约为10.7MB,因此无法在Google地图上加载.KMZ文件大约2MB.我看到它的唯一方法是拥有多个KML,但它的工作量太大了.我可能最终会这样做,但只是想知道KMZ是否可以使用?
谢谢.
我的SQL查询生成XML输出:
select 'TEST.kml' as name,
(select 'TEST' as name, (
select (
select top 10 issue as name,
null as description,
null as 'Point/coordinates',
(
select
null as altitudeMode,
Coordinates as 'coordinates'
for xml path('Polygon'), type)
from Mapping for xml path('Placemark'), type))
for xml path ('Line') , type)
for xml path ('Doc'), root('kml'))
Run Code Online (Sandbox Code Playgroud)
我想将查询的输出保存为.XML文件到本地驱动器.请指教.
我对这篇文章有类似的问题.我需要在嵌入式Google地图上显示多达1000个多边形.多边形位于SQL数据库中,我可以使用自定义HttpHandler(在ASP.NET中)将每个多边形渲染为单个KML文件,如http://alpha.foresttransparency.org/concession.1.kml.
即使在我(非常快)的开发机器上,也需要一段时间来加载甚至几十个形状.真的有两个问题:
一旦超出某个缩放级别,将这些作为标记而不是叠加层渲染的好策略是什么?
有一个公开的算法可以简化多边形(减少点数),这样我就不会在某个缩放级别显示更多的点而不是有意义吗?
我需要能够将具有给定高度的多边形对象放置在位于地面上方的KML中.我希望将空域信息显示为KML,并且每个空域都具有低海拔和高海拔值.
到目前为止,我能够做的最接近的事情就是创建两个不同海拔高度的多边形来显示空域,但我无法连接多边形来显示中间区域.
谢谢你的帮助
使用C#生成KML文件的最佳方法是什么?
是否有可以使用的类库?我一直在努力寻找有趣的东西.
libkml没有C#实现或包装器.
任何帮助都会很棒.
我正在尝试使用Builder生成KML.我知道他们有一些选择可以帮助解决这个问题,但是我会做一些2.2特定的事情,这些事情我看过的KML宝石都不支持,并且通常希望能够通过XML框架实现这一点. .
渲染我的kml/xml时,我在文件末尾得到一个标签.我强烈怀疑我在设置Builder对象或者如何渲染输出时遗漏了一些基本内容.这是一个演示该问题的简单示例:
def kml2dot2
@site = Site.find(params[:id])
xml = Builder::XmlMarkup.new(:indent => 2)
xml.instruct!
xml.kml("xmlns" => "http://www.opengis.net/kml/2.2") {
xml.Placemark do
xml.name @site.mapNameFull
xml.Point do
xml.coordinates @site.lat.to_s + "," + @site.lng.to_s + ",0"
end
end
}
render :text => xml, :type=>"text/kml"
end
Run Code Online (Sandbox Code Playgroud)
生产:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Placemark>
<name>Seattle City Hall</name>
<Point>
<coordinates>47.6040746,-122.33005,0</coordinates>
</Point>
</Placemark>
</kml>
<to_s/>
Run Code Online (Sandbox Code Playgroud)
我试图了解如何避免<to_s/>
被包含在内以及我在使用Builder时遇到的问题.感谢您的任何见解.
我编写了一个R脚本来获取一些地图点数据(纬度和经度值).我可以在R中绘制它们并将它们可视化.但现在我想使用Google地球从这些数据和视图生成KML文件.这样我就可以与同事分享,他们也可以在Google地球上看到它.
这样做的最佳方法/包是什么?
我有一个很大的KML文件到原生Android应用程序,请检查以下详细信息并提供建议.
KML文件详细信息:
Android应用详情:
问题:
以良好的性能实施上述细节的最佳做法是什么?
请指教.
kml ×10
google-maps ×3
c# ×2
google-earth ×2
xml ×2
android ×1
asp.net ×1
builder ×1
javascript ×1
kmz ×1
localhost ×1
maps ×1
performance ×1
polygon ×1
r ×1
sql ×1
sql-server ×1