#django #iframe #jinja2 #openstreetmap
#django #iframe #jinja2 #openstreetmap
Вопрос:
Я попробовал несколько способов включить openstreetmap через iframe в мое приложение django. Я прекрасно вижу карту и могу увеличивать или уменьшать масштаб, но это всегда карта Антигуа. Я хочу встроить небольшую карту в свой шаблон django и передать широту и долготу из jinja. Не имеет значения, передаю ли я жестко закодированные lon и lat или jinja, я все равно получаю ту же карту в openstreetmaps.
Я начал с этого шаблона из openstreetmaps wiki https://wiki.openstreetmap.org/wiki/OpenLinkMap :
<iframe width="420" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.openlinkmap.org/small.php?lat=<LAT>amp;lon=<LON>amp;zoom=<ZOOM>" style="border: 1px solid black"></iframe>
Независимо от того, вводил ли я жесткий код или вводил динамические значения, я вижу карту Антигуа. Я попытался передать параметры из jinja:
<iframe width="420" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.openlinkmap.org/small.php?lat={{ li.latitude }}amp;lon={{ li.longitude }}amp;zoom=10" style="border: 1px solid black"></iframe>
Это не сработало, поэтому я попытался просто ввести long и lan, и я все еще получаю Антигуа:
Но следующее отлично работает как ссылка url и передает правильные параметры:
<a href="https://www.openstreetmap.org/#map=12/{{ li.latitude }}/{{ li.longitude }}" target="_blank"><b>View Larger Map</b></a>
Я новичок в openstreetmaps, django и jinja и не вижу, где я допускаю ошибку.
Ответ №1:
Вы должны написать следующее:
{{ li.latitude|safe }}
Ответ №2:
Обновление: я обнаружил, что использование <embed>
тега работает нормально. Кажется <iframe>
, не всегда поддерживается в html5, и это, возможно, вызывало некоторые проблемы.