2

我有一个城镇名称、gmap 模块和 plg。我想通过输入城镇名称而不是经度和纬度来在 gmap 中聚焦所需位置。在 Joomla 1.5.x 中有什么方法可以做到这一点。

在此先感谢
纳文

4

3 回答 3

3

您将需要一个地理编码器来根据城市名称获取位置。对 Joomla 一无所知,但这里是使用 JavaScript 的示例。

的HTML

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

剧本

您必须填写 Google API Key 和您想要的城市

<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>
于 2009-04-27T21:08:48.100 回答
0

您可以从 Javascript 向 Google 的地理编码服务发起 HTTP 调用,将地名/邮政编码传递给它,然后返回 lat/long。

我使用 CSV 选项执行此操作,因为我从 ASP 调用它,但我认为您也可以取回 XML 或 JSON。

如果您有 Google 地图 API 密钥,请关闭此 URL: http ://maps.google.com/maps/geo?gl=uk&q=guildford,+uk&output=csv&key=XXXXXXXXXXXX

返回的第一个参数是响应代码。200代表成功。然后你得到纬度和经度,逗号分隔。

于 2009-11-05T12:09:55.370 回答
0

我正在寻找一种自己做类似事情的方法。我尝试使用 Google Maps API 搜索位置,但有时会出错。最终我查询了与城镇相关的维基百科页面并解析了坐标,然后使用了这些。可能不是您正在寻找的解决方案,但它对我有用。我建议先尝试搜索 Maps API 作为 Eduardo 的详细信息,但如果这不起作用,则可能会这样做。

于 2009-04-27T21:10:58.670 回答