0

我的网站需要一个谷歌地图模块。地图应根据邮政编码显示。邮政编码将自动转换为其地址/纬度和经度。

4

1 回答 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&region=$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 回答