首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP为地图上的多个地标动态创建KML

PHP为地图上的多个地标动态创建KML
EN

Stack Overflow用户
提问于 2010-11-28 20:59:48
回答 2查看 3.1K关注 0票数 0

目前正在为PHP而苦苦挣扎,并从它创建了KML。我使用KML (geoGetevents)从'location‘抓取事件(例如,用户搜索曼彻斯特),然后(使用last.fm -因为我觉得它比JS更舒服)将这些事件绘制在地图上。

我发现当从我的feed链接到google地图时,我得到了无效的KML/KMZ错误。话虽如此,我知道为什么..所有内容都包含在一个文件中-包括PHP生成的KML。

因此,对于GET变量,URL是http://example.net/dmp/search.php?city=bristol

Google Maps忽略了'?‘后URL的其余部分--有没有办法将动态生成的KML发送到google maps?也许创建一个单独的KML文件?

代码语言:javascript
代码运行次数:0
运行
复制
<kml xmlns="http://www.opengis.net/kml/2.2"> <!-- Sets KML header --> 
<Folder> 
<name>Gigs</name> 
      <Placemark><name>As I Lay Dying</name><description> etc

这是PHP创建的当前KML。

希望你能帮上忙,并提前感谢你

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-17 23:48:56

我想我已经得到你的答案了,你把链接放在你描述的Cdata里面吗?这将允许一个气泡出现在点击图标上面,里面有html。

marinetraffic.com就是一个很好的例子

发送动态创建的kml。

将其添加到您的Apache应用程序/vnd.google- mime.types +xml中

在输出文件的页面的顶部放置这个头文件(‘Content-type:application/vnd.google-earth.kml.kml+xml’);

ps你可以在http://code.google.com/apis/kml/documentation/kml_tut.html上找到更多关于cdata的信息

然后,您需要创建一个网络链接文件它是一个kml文件,它告诉google map ware查找您的服务器。

代码语言:javascript
代码运行次数:0
运行
复制
    <?xml version="1.0" encoding="UTF-8"?>
    <kml xmlns="http://www.opengis.net/kml/2.2">
      <Folder>
        <name>Network Links</name>
        <visibility>0</visibility>
        <open>0</open>
        <description>Network link example 1</description>
        <NetworkLink>
          <name>Random Placemark</name>
          <visibility>0</visibility>
          <open>0</open>
          <description>A simple server-side script that generates a new random
            placemark on each call</description>
          <refreshVisibility>0</refreshVisibility>
          <flyToView>0</flyToView>
          <Link>
<refreshInterval>600.0</refreshInterval>

<refreshMode>onInterval</refreshMode>
            <href>http://yourserver.com/cgi-bin/randomPlacemark.py</href>
          </Link>
        </NetworkLink>
      </Folder>
    </kml>

我添加了刷新间隔,因为这将使其自动更新

希望这对你有帮助,因为你知道比我多得多的php,你介意看看我的问题吗!哈哈,jope,这有帮助

票数 0
EN

Stack Overflow用户

发布于 2012-06-02 19:32:44

你的问题有点模糊。让我们来解决如何创建动态KML文件,以便与googlemaps最简单的界面-网站一起使用。

click here for example

你必须意识到的第一个问题是,为了避免将网站用作动态界面,google限制了它刷新KML的频率(您可能已经更改了它,但google缓存了它)。谷歌刷新缓存通常需要10分钟以上的时间。

因此,最好的做法是更改您的KML名称,即指向googlemaps嵌入的链接,并刷新嵌入的映射。

注意:您可以编写生成KML的PHP代码,并直接从googlemaps站点调用PHP文件。

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

https://stackoverflow.com/questions/4296840

复制
相关文章

相似问题

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