首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >写入kml文件:如何将kml字符串发送到kml文件?

写入kml文件:如何将kml字符串发送到kml文件?
EN

Stack Overflow用户
提问于 2013-11-11 19:02:46
回答 1查看 2.2K关注 0票数 2

我有一个在地图上绘图的项目,并以字符串的形式生成kml。我想通过ajax请求将其发送到kml文件。

代码语言:javascript
复制
$.ajax({
    type: 'PUT',
    url: 'myurl.kml',
    data: kmlString,
    success() {
       //say it succeeded
    }
});

因为我的kml数据嵌套在引号中,如下所示,

代码语言:javascript
复制
'<xml.....</kml>'

kml文件抱怨由于引号(这是正确的)语法是不正确的。

我曾想过将数据作为json对象而不是字符串传递,就像这样,

代码语言:javascript
复制
{'mapData': 'mykmldata'}

但是数据仍然被引号所封装。

在没有引号的情况下,将我的数据送到kml文件的最佳方法是什么?Google v3似乎在任何地方都没有“字符串到kml”函数,尽管我觉得这将是本例中的灵丹妙药。

我注意到Google有一个parseKml函数,这与谷歌地图兼容吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-11 19:25:09

第三方KML解析器geoxml3有一个"parseKmlString“方法,它将从字符串中获取有效的KML并解析它以创建原生Google v3对象。

示例:从这个文件中获取KML:cities.kml

片段:

代码语言:javascript
复制
<?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 &quot;Heart of the Commonwealth&quot; 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的标记。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19913837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档