PHP Динамическое создание KML для нескольких меток на карте - PullRequest
0 голосов
/ 28 ноября 2010

В настоящее время борется с PHP и создает из него KML. Я использую API last.fm (geoGetevents), чтобы захватывать события из «местоположения» (например, пользователь ищет Манчестер), а затем (используя KML - как мне удобнее, чем JS) наносить их на карту.

Я обнаружил, что получаю недопустимые ошибки KML / KMZ при ссылке на карту Google из моего канала. Сказав это, я знаю почему ... Все содержится в одном файле - включая KML, который генерирует PHP.

То есть с переменной GET, URL-адрес http://example.net/dmp/search.php?city=bristol

Карты Google игнорируют оставшуюся часть 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

Это текущий KML, созданный PHP.

Надеюсь, что вы можете помочь, и заранее спасибо

Ответы [ 2 ]

0 голосов
/ 02 июня 2012

Ваш вопрос был немного размытым.Давайте рассмотрим, как создавать динамические KML-файлы для использования с простейшим интерфейсом googlemaps - веб-сайтом.

Нажмите здесь, например,

Первая проблема, о которой вы должны знатьчтобы избежать использования сайта в качестве динамического интерфейса, Google ограничивает частоту обновления KML (возможно, вы его изменили, но Google кэшировал его).как правило, пройдет более 10 минут, прежде чем Google обновит свой кэш.

, поэтому лучше всего изменить свое имя KML, ссылку на встраивание googlemaps и обновить встроенную карту.

примечание: вы можете написать код PHP, который выплевывает KML, и вызывать файл PHP непосредственно с сайта googlemaps.

0 голосов
/ 17 марта 2011

я думаю, что у меня есть ваш ответ, если вы поместите ссылку в Cdata внутри вашего описания, это позволит появиться пузырю над значком клика с html в нем

хорошим примером является marinetraffic.com

отправка динамически созданного кмл.

добавьте это в приложение Apache mime.types / vnd.google-earth.kml + xml kml

вверху страницы, где выводится файл, поместите этот заголовок ('Content-type: application / vnd.google-earth.kml + xml ');

yada yada

ps, вы можете узнать о cdata по адресу http://code.google.com/apis/kml/documentation/kml_tut.html

, затем вынужно создать файл сетевой ссылки, это файл kml, который говорит программе Google Maps искать ваш сервер

    <?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, чем я, вы не возражаете взглянуть на мою проблему!ха-ха, это помогает

...