【发布时间】:2009-04-21 12:54:08
【问题描述】:
我有一个城镇名称、gmap 模块和 plg。我想通过输入城镇名称而不是经度和纬度来在 gmap 中聚焦所需位置。有没有办法在 Joomla 1.5.x 中做到这一点。
提前致谢
天真
【问题讨论】:
标签: google-maps joomla
我有一个城镇名称、gmap 模块和 plg。我想通过输入城镇名称而不是经度和纬度来在 gmap 中聚焦所需位置。有没有办法在 Joomla 1.5.x 中做到这一点。
提前致谢
天真
【问题讨论】:
标签: google-maps joomla
您将需要一个地理编码器来根据城市名称获取位置。对 Joomla 一无所知,但这里是使用 JavaScript 的示例。
<div id='myMap' style="position:relative; width:740px; height:400px;"></div>
您必须填写 Google API Key 和您想要的城市
<script src="http://maps.google.com/maps?file=api&v=2.x&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>
【讨论】:
我正在寻找一种方法来自己做类似的事情。我尝试使用 Google Maps API 搜索位置,但有时会出错。最终我查询了与城镇相关的维基百科页面并解析了坐标,然后使用了这些。可能不是您正在寻找的解决方案,但它对我有用。我建议先尝试搜索 Maps API 作为 Eduardo 的详细信息,但如果这不起作用,则可能会这样做。
【讨论】:
您可以从 Javascript 向 Google 的地理编码服务发起 HTTP 调用,向其传递地名/邮政编码,然后返回纬度/经度。
我使用 CSV 选项执行此操作,因为我从 ASP 调用它,但我认为您也可以返回 XML 或 JSON。
如果您有 Google 地图 API 密钥,请关闭此 URL: http://maps.google.com/maps/geo?gl=uk&q=guildford,+uk&output=csv&key=XXXXXXXXXXX
返回的第一个参数是响应码。 200代表成功。 然后你得到纬度和经度,用逗号分隔。
【讨论】: