Сфокусируйте карту Google на основе названия города - PullRequest
2 голосов
/ 21 апреля 2009

У меня есть название города, модули gmap и plg. я хочу сфокусировать нужное место в gmap, указав название города в качестве входного значения вместо долготы и широты. Есть ли способ сделать это в Joomla 1.5.x.

Заранее спасибо
Нэвин

Ответы [ 3 ]

3 голосов
/ 28 апреля 2009

Вам понадобится геокодер, чтобы получить местоположение на основе названия города. Ничего не знаю о Joomla, но вот и пример использования JavaScript.

HTML

<div id='myMap' style="position:relative; width:740px; height:400px;"></div>

Сценарий

Вы должны заполнить ключ API Google и город, который вы хотите

<script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=XXXXX">
</script>

<script type="text/javascript">
    function addLoadEvent(func) {
        var oldonload = window.onload;
        if (typeof window.onload != 'function')
        { window.onload = func; }
        else {
            window.onload = function()
            { oldonload(); func(); }
        }
    }

    var map = null;
    var geocoder = null;

    addLoadEvent(initialize);

    function initialize() {
        if (GBrowserIsCompatible()) {
            map = new GMap2(document.getElementById("myMap"));
            map.setCenter(new GLatLng(-12.08, -53.08), 4);
            map.addControl(new GSmallMapControl());
            map.addControl(new GOverviewMapControl());
            geocoder = new GClientGeocoder();
            showAddress('YourCity, YourCountry');
        }
    }

    function showAddress(address) {
        if (geocoder) {
            geocoder.getLatLng(
          address,
          function(point) {
              if (!point) {
                  $("#myMap").hide();
              } else {
                  map.setCenter(point, 8);
                  var marker = new GMarker(point);
                  map.addOverlay(marker);
                  marker.openInfoWindowHtml(address);
              }
          }
        );
        }
    }
</script>
0 голосов
/ 05 ноября 2009

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

Я делаю это, используя опцию CSV, как я ее называю из ASP, но я думаю, что вы можете вернуть XML или JSON.

Запустите этот URL, если у вас есть ключ API карт Google: http://maps.google.com/maps/geo?gl=uk&q=guildford,+uk&output=csv&key=XXXXXXXXXXX

Первый параметр back - это код ответа. 200 означает успех. Тогда вы получите широту и долготу, разделенные запятой.

0 голосов
/ 28 апреля 2009

Я искал способ сделать что-то подобное сам. Я пытался использовать Google Maps API для поиска местоположения, но иногда это было неправильно. В конце концов я запросил страницу в Википедии о городе и проанализировал координаты, а затем использовал их. Возможно, не то решение, которое вы искали, но оно работает для меня. Я бы посоветовал сначала попытаться выполнить поиск в API Карт в качестве подробностей Eduardo, но если это не сработает, возможно, это так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...