Как отобразить код Google Maps в Smarty - PullRequest
1 голос
/ 12 июля 2011
<div>
    {$google_map_link}
</div>

Я назначаю следующие коды iframe карты Google в smarty и пытаюсь отобразить карту на экране.

Карта Google, которой присвоена переменная smarty {$google_map_link}, равна

<iframe width="300" height="300" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.co.in/maps?q=Tiriyos&amp;gl=in&amp;hl=en&amp;sll=13.008237,80.193329&amp;sspn=0.206059,0.363579&amp;ie=UTF8&amp;view=map&amp;cid=5721197682818793762&amp;hq=Tiriyos&amp;hnear=&amp;ll=12.948405,80.137217&amp;spn=0.006441,0.011362&amp;iwloc=A&amp;output=embed"></iframe>
<br />
<small>
    <a href="http://maps.google.co.in/maps?q=Tiriyos&gl=in&hl=en&sll=13.008237,80.193329&sspn=0.206059,0.363579&ie=UTF8&view=map&cid=5721197682818793762&hq=Tiriyos&hnear=&ll=12.948405,80.137217&spn=0.006441,0.011362&z=17" style="color:#0000FF;text-align:left">View Larger Map</a>
</small>

Я ожидаю отображения карты Google на экране, но отображаются только коды iframe

Как решить эту проблему ...

Ответы [ 2 ]

1 голос
/ 20 июля 2011

В php

<?
$google_map_link = html_entity_decode($google_map_code);
$smarty->assign('google_map_link', $google_map_link);
?>

В HTML

<div>
    {$google_map_link}
</div>

Я использовал html_entity_decode для декодирования кода iframe карт Google и отображался в smarty.Это самый простой способ отображать карты Google в Smarty.

Я могу помочь кому-то еще

1 голос
/ 15 июля 2011

Я попробовал ваш код, и он работает на Smarty 3.0.8.

Почему бы вам не использовать API карт Google (http://code.google.com/apis/maps/index.html)? Я обычно вставляю html в шаблон и просто передаю значения. Пример ниже:

PHP:

<?php
$smarty->assign('google_map_x', '12.948405');
$smarty->assign('google_map_y', '80.137217');
?>

шаблон:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
  var myLatlng = new google.maps.LatLng({$google_map_x}, {$google_map_y});
  var myOptions = {
    zoom: 8,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  var marker = new google.maps.Marker({
    position: myLatlng, 
    map: map, 
    title:"Tiriyos"
  }); 
}
</script>
<div id="map_canvas" style="width:300px;height:300px"></div>

Тогда вы можете поместить свое информационное окно на маркер. Подробнее здесь: http://code.google.com/apis/maps/documentation/javascript/overlays.html#InfoWindows

...