我的网站需要一个谷歌地图模块。地图应根据邮政编码显示。邮政编码将自动转换为其地址/纬度和经度。
问问题
756 次
1 回答
0
好吧,我在 PHP 中做到了 .. 请找到代码 .. 进行 AJAX 调用,这将返回纬度和经度 .. 像
$address = $this->input->post('address');
$output = array();
$address = str_replace(" ", "+", $address);
$region = "IND";
$json = file_get_contents("http://maps.google.com/maps/api/geocode/json?address=$address&sensor=false®ion=$region");
$json = json_decode($json);
if (!empty($json->{'results'}[0]->{'geometry'}->{'location'}->{'lat'})) {
$output['latitude'] = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lat'};
$output['longitude'] = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lng'};
return $output;
}
然后使用 google map API 使用返回的纬度和经度设置地点
//var latlng = new google.maps.LatLng(-104.017031, 15.373535);
var latlng = new google.maps.LatLng(latitude,longitude);
var map = new google.maps.Map(document.getElementById('map'), {
center: latlng,
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = new google.maps.Marker({
position: latlng,
map: map,
title: 'Set lat/lon values for this property',
raiseOnDrag: true,
draggable: true
});
google.maps.event.addListener(marker, 'dragend', function(a) {
console.log(a);
$('#latitude').val(a.latLng.lat().toFixed(4));
$('#longitude').val(a.latLng.lng().toFixed(4));
// var div = document.createElement('div');
// div.innerHTML = a.latLng.lat().toFixed(4) + ', ' + a.latLng.lng().toFixed(4);
// document.getElementsByTagName('body')[0].appendChild(div);
});
请在您的页面中包含 google map.js 文件
希望这可以帮助
于 2012-04-12T05:04:56.353 回答