地理编码器谷歌地图经度和纬度查找

Posted

技术标签:

【中文标题】地理编码器谷歌地图经度和纬度查找【英文标题】:Geocoder google maps longitude and latitude lookup 【发布时间】:2012-05-02 11:21:07 【问题描述】:

我有一个经度和纬度查找,可以很好地使用这样的 ajax 调用:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">

var geocoder = new google.maps.Geocoder();
var address = "<?php echo addslashes($_POST['street'].' '.$_POST['house_number'].', '.$_POST['postal_code'].', '.$_POST['city'].', '.$_POST['country']); ?>";

geocoder.geocode(  'address': address, function(results, status) 

    if (status == google.maps.GeocoderStatus.OK) 

        var latitude = results[0].geometry.location.lat();
        var longitude = results[0].geometry.location.lng();
        var request_key = '<?php echo $ajax_request_key; ?>';
        var url = '<?php echo $settings['base_url'].'/site/templates/ajax/add_vacancy_latitude_and_longitude.php?vacancy_id='.$_POST['vacancy_id']; ?>';

        //add longitude and latitude to database
        $.post(url,  this_latitude:latitude, this_longitude:longitude, this_request_key:request_key , function(data)   );

    

); 
</script>

但这仅适用于 ajax 调用。有没有办法我可以通过 http 请求来做到这一点,这样我就可以立即查询我的 mysql 数据库以查找附近的空缺,而无需进行第二次页面加载(例如,我有一个搜索表单,用户可以在其中输入他们的邮政编码,我想要在提交时立即将其邮政编码的经度和纬度与数据库进行比较。

我现在能想到的方法是阻止使用jquery提交并进行ajax调用,将搜索的经度和纬度存储到数据库中,然后提交表单并使用存储的经度和纬度查询数据库。不知何故,我认为必须有一种更有效的方法。

谢谢! 斯科特

【问题讨论】:

您可以尝试在php中使用curl,在页面加载之前您将拥有所有信息php.net/manual/en/book.curl.php 【参考方案1】:

嗨,Scott,有一种使用 curl 的有效方法。

你可以像这样直接进行http调用

http://maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false

您必须将 2 个参数传递给 url 1. 地址 2. 传感器

享受吧!

达塔

【讨论】:

谢谢!完美的;与 YamahaSY 评论中提到的 php curl 结合使用

以上是关于地理编码器谷歌地图经度和纬度查找的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 中对谷歌地理编码 api 进行批量纬度/经度查找?

谷歌地图地理编码器返回相同的结果

使用 iPhone 的纬度和经度进行反向地理编码

从英国邮政编码地理编码经度和纬度? [复制]

如何解析谷歌地图地理编码结果

如何在信息窗口中显示我的地理编码地址?谷歌地图 API