写入 kml 文件:如何将 kml 字符串发送到 kml 文件
Writing to kml file: How send kml string to kml file?
我有一个在地图上绘制并生成 kml 作为字符串的项目。我想通过 ajax 请求将其发送到 kml 文件。
$.ajax({
type: 'PUT',
url: 'myurl.kml',
data: kmlString,
success() {
//say it succeeded
}
});
因为我的 kml 数据嵌套在引号内,就像这样,
'<xml.....</kml>'
KML 文件抱怨由于引号而导致语法不正确(这是真的)。
我想过将数据作为 json 对象而不是字符串传递,就像这样,
{'mapData': 'mykmldata'}
但数据仍然用引号封装。
将数据不带引号传输到 kml 文件的最佳方法是什么?谷歌地图API v3似乎在任何地方都没有"字符串到kml"功能,尽管我觉得在这种情况下这将是灵丹妙药。
我注意到谷歌地球API有一个parseKml函数,它与谷歌地图兼容吗?
第三方KML解析器geoxml3有一个"parseKmlString"方法,它将从字符串中获取有效的KML并解析它以创建原生的Google Maps Javascript API v3对象。
例:从此文件中获取 KML:http://www.geocodezip.com/geoxml3_test/kml/MA_cities.kml
片段:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<name>Massachusetts Cities</name>
<Folder>
<Placemark>
<name>Boston</name>
<description>Boston is the capital of and largest city in Massachusetts. The Boston Massacre and the Boston Tea Party occurred in Boston and led to the American Revolution.</description>
<LookAt>
<longitude>-71.05977300312775</longitude>
<latitude>42.35843100531216</latitude>
<altitude>0</altitude>
<heading>-2.107386233340164e-009</heading>
<tilt>0</tilt>
<range>34426.00143998101</range>
<altitudeMode>relativeToGround</altitudeMode>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<styleUrl>#msn_ylw-pushpin9</styleUrl>
<Point>
<altitudeMode>absolute</altitudeMode>
<coordinates>-71.05977300312775,42.35843100531217,3.1482280535562</coordinates>
</Point>
</Placemark>
<Placemark>
<name>Worcester</name>
<description>Worcester is known as the "Heart of the Commonwealth" due to its location in central Massachusetts, thus, a heart is the official symbol of the city.</description>
<LookAt>
<longitude>-71.80229299737233</longitude>
<latitude>42.2625930065606</latitude>
<altitude>0</altitude>
<heading>1.76716070878667e-009</heading>
<tilt>0</tilt>
<range>17233.50055269895</range>
<altitudeMode>relativeToGround</altitudeMode>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<styleUrl>#msn_ylw-pushpin0</styleUrl>
<Point>
<altitudeMode>absolute</altitudeMode>
<coordinates>-71.80229299737233,42.26259300656061,145.2545892926215</coordinates>
</Point>
</Placemark>
</Folder>
</Document>
</kml>
将其粘贴到此页面上的 KML 文本框中:
http://www.geocodezip.com/blitz-gmap-editor/test5.html
它显示来自 KML 的标记。
相关文章:
- 使用php和javascript从kml文件创建高程图
- 使用Google Maps API和GeoXML3导入并显示本地KML文件
- 写入 kml 文件:如何将 kml 字符串发送到 kml 文件
- 当样式使用相同的 id 时,如何在 KML 文件中重新着色多边形
- 谷歌地图 API V3 搜索 KML 文件
- 谷歌地图 API V3 读取 KML 文件
- KML 文件和自定义类
- 动态更改链接的 KML 文件中多边形的颜色
- 谷歌地图不会加载/显示KML文件
- 如何将KML文件动态加载到谷歌地图,并进一步加载到折线
- kml文件在谷歌地图上加载了一半
- 如何从KML文件中将一对融合表与GroundOverlays集成?更新了我试图解决的问题(未成功)
- 为什么获胜'我的KML文件(3MB)是否显示在谷歌地图上?但对于小的kml文件(如250kb)工作良好
- 为什么获胜't我的KML文件显示在谷歌地图上
- 阅读PHP中的KML文件,强制在一行中进行解析,使用谷歌地图的parseKMLString进行解析
- OpenLayers为KML文件上的多边形着色
- 在本地谷歌地图上渲染kml文件
- javascript如何在googleearth中设置kml文件的动画范围
- 无法在开始或位置搜索时加载KML文件以在自定义地图中工作
- 无法使用geoxml3加载KML文件