Символы пользовательских меток, используемые в KML, не отображаются в Картах Google - PullRequest
2 голосов
/ 23 февраля 2012

Это сводит меня с ума.Я разрабатывал несколько простых встроенных Карт Google, таких как:

http://publicworks.snoco.org/rdclosures/snocordclosuregmaps.html

Эта карта, в частности, имеет несколько оверлеев , но один из них - нетбольше отображения пользовательских значков меток, которые я разработал и указал.Проблемный слой KML заключается в следующем:

http://publicworks.snoco.org/RdClosures/SnocoRdClosures4Gmaps.kml

Некоторое время в последние несколько месяцев пользовательские символы перестали отображаться и были заменены символом метки по умолчанию.Если вы откроете файл KML в Google Планета Земля, он отобразится правильно.Файл KML действительно проверяется с помощью KmlValidator.

В ходе моих поисков здесь я увидел предложение об использовании определений в верхней части файла KML, а затем об использовании внутри каждой метки.Я внес это изменение в свой KML, но, похоже, это не имело никакого значения (пользовательские значки по-прежнему не отображаются).

Я понимаю, что KML-файлы кэшируются на стороне Google, поэтому, если вы посмотрите на мой код JavaScriptЯ использую трюк с фиктивным параметром для моего пути URL KML, чтобы принудительно обновить слой.Еще одна вещь, которую я хочу отметить, заключается в том, что содержимое этого KML не является статичным и часто меняется.

Есть идеи?Потому что я в тупике!

СПАСИБО!Стив

Ответы [ 2 ]

2 голосов
/ 24 февраля 2012

Согласился с fragileninja, что что-то происходит с вашими изображениями между вашим сервером и Google. Обычные подозреваемые - это тайм-аут и 404 (или другие ошибки сервера).

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

Возможно, вашим серверам требуется больше времени, чем обычно, чтобы отвечать на серверы Google, или даже что они возвращают какую-то ошибку HTTP вместо изображения.

Можете ли вы проверить журналы вашего сервера, чтобы увидеть, видите ли вы запросы и возвращаются ли они, как ожидалось?

Наконец, если там нет проблем, я бы предложил сообщить об ошибке в Отслеживателе проблем API Карт . Убедитесь, что вы выбрали подходящий шаблон из выпадающего списка (вы также можете подумать о том, чтобы сделать более простой тестовый пример, например, просто использовать свой файл KML с примером KmlLayer из документов ). Если в итоге вы отправите сообщение об ошибке, пожалуйста, сделайте ссылку здесь, и я позабочусь о том, чтобы на нее посмотрели.

1 голос
/ 24 февраля 2012

Это связано с тем, как ваш сервер обслуживает изображения. Если я размещаю значки на своем, он работает нормально, а в других ваших файлах KML используются значки с maps.google.com, который также отлично работает.

Поскольку это работает в GE, я предполагаю, что, возможно, ваш сервер отправляет неправильный тип MIME или что-то в этом роде. Я проверил с curl, и все выглядит хорошо, поэтому я боюсь, что не могу предложить больше деталей, чем это. Надеюсь, это поможет вам в правильном направлении. Удачи!

...