PHP Dynamically creating KML for multiple placemarks on map
Currently struggling with PHP and creating KML from it. I'm using the last.fm API (geoGetevents) to grab events from 'location' (for example, user searches for Manchester) and then (using KML - as I feel more comfortable with it than JS) plot these on a map.
I'm finding that I get invalid KML/KMZ errors when linking to a google map from my feed. Having said that, I know why.. Everything is contained in one file - including the KML that PHP generates.
So with GET variable, the URL is http://example.net/dmp/search.php?city=bristol
Google Maps is ignoring the rest of the URL after the '?' - is there any way I can send the dynamically generated KML to google maps? Maybe creating a separate KML file?
<kml xmlns="http://www.opengis.net/kml/2.2"> <!-- Sets KML header -->
<Folder>
<name>Gigs</name>
<Placemark><name>As I Lay Dying</name><descriptio开发者_运维百科n> etc
That is the current KML that is created by the PHP.
Hope you can help, and thank you in advance
i think i have your answer have you put the link inside a Cdata inside your description this will allow a bubble to appear above the click icon with html in it
good example is a marinetraffic.com
sending dynamically created kml.
add this to your Apache mime.types application/vnd.google-earth.kml+xml kml
at the top of the page that outputs the file put this Header('Content-type: application/vnd.google-earth.kml+xml');
yada yada
ps you can find out alot about the cdata at http://code.google.com/apis/kml/documentation/kml_tut.html
then you need to create a network link file its a kml file that tells google maps ware to look for your server
<?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>
i added Refresh interval as this will make it auto update
hope this helps chap since you know a alot more php than i do would you mind having a look at my problem ! haha jope this helps
your question was a bit fuzzy. let us address how to create dynamic KML files for use with googlemaps simplest interface - the website.
click here for example
the first issue you must be aware of is that, so as to avoid using the website as a dynamic interface, google restricts how often it refreshes the KML (you might have changed it, but google cached it). it will usually be more than 10 minutes before google refreshes its cache.
therefore, the best thing would be to change your KML name, the link to googlemaps embedding and refresh your embedded map.
note: you can write PHP code that spits out a KML and call the PHP file directly from within the googlemaps site.
精彩评论