目前正在为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文件?
<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。
希望你能帮上忙,并提前感谢你
发布于 2011-03-17 15: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查找您的服务器。
<?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,这有帮助
发布于 2012-06-02 11:32:44
你的问题有点模糊。让我们来解决如何创建动态KML文件,以便与googlemaps最简单的界面-网站一起使用。
你必须意识到的第一个问题是,为了避免将网站用作动态界面,google限制了它刷新KML的频率(您可能已经更改了它,但google缓存了它)。谷歌刷新缓存通常需要10分钟以上的时间。
因此,最好的做法是更改您的KML名称,即指向googlemaps嵌入的链接,并刷新嵌入的映射。
注意:您可以编写生成KML的PHP代码,并直接从googlemaps站点调用PHP文件。
https://stackoverflow.com/questions/4296840
复制