根据城镇名称关注Google地图

时间:2009-04-21 12:54:08

标签: google-maps joomla

我有一个城镇名称,gmap模块和plg。我想通过将城镇名称作为输入而不是经度和纬度来将所需位置集中在gmap中。在Joomla 1.5.x中有没有办法做到这一点。

提前致谢
纳温

3 个答案:

答案 0 :(得分:3)

您需要GeoCoder才能根据城市名称获取位置。对Joomla一无所知,但这是使用JavaScript的例子。

HTML

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

脚本

您必须完成Google API密钥和所需的城市

<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>

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您可以通过Javascript向Google的地理编码服务进行HTTP调用,并为其传递地名/邮政编码,然后返回lat / long。

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

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

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