A. php怎样把ip地址转化为坐标
转化不了。只能根据ip获取地理位置,并不能转化为经纬度。如今的ip性质还没办法做到
B. PHP如何实现手机定位,求代码!
这个需要有客户端并获取系统权限,监听拨打电话的号码,符合条件打开GPS,获取经纬度发送到指定后台
C. 使用PHP实现查找附近的人
查找附近的人,涉及到LBS(基于位置的服务)技术。首先,需获取用户位置信息,常用方法有GPS、运营商基站定位和WIFI定位。客户端获取位置坐标后上传至服务器,服务器据此保存数据。当用户请求查找附近的人时,服务器根据请求者坐标和特定条件,在数据库中筛选并排序,返回结果。
计算两点间球面距离,不能直接使用平面坐标公式,需利用球面坐标系统。具体计算公式和推导过程可参考相关文章。PHP中实现此功能,主要涉及经纬度转换和球面距离计算。
获取两点间距离的PHP函数代码,MySQL存储和查询相关代码示例,以及使用Redis和MongoDB进行位置数据管理与查询的具体步骤。Redis提供GEO功能,支持距离计算和位置集合获取;MongoDB的2d和2dsphere索引适用于球面查询。
三种方式实现查找附近的人:MySQL通过查询语句获取数据,Redis提供快速响应和实时查询,MongoDB支持大数据量管理和多种属性筛选。具体操作包括增加、查询位置数据、建立索引、查找附近点等。
使用MySQL时,注意支持查询条件和分页;Redis查询时限制查询条件和分页功能;MongoDB查询时返回结果包含距离,支持查询条件和返回数量,但不支持分页。
操作中需注意选择合适的数据存储和查询方式,处理写入确认级别问题,以及计算距离时的单位转换。演示代码示例可参考特定链接。
总结,LBS技术结合数据库管理,实现高效查找附近的人功能。根据业务需求,选择MySQL、Redis或MongoDB,确保数据处理的实时性、效率和准确性。实际应用中需综合考虑数据量、实时性要求和查询条件等因素,进行方案评估。
D. php怎样获取当前位置的经纬度
随着 Google Maps API 的普及,开发人员常常需要获得某一特定地点的经度和纬度。这个非常有用的函数以某一地址作为参数,返回一个数组,包含经度和纬度数据。
function getLatLong($address){
if (!is_string($address))die("All Addresses must be passed as a string");
$_url = sprintf('<a href="http://maps.google.com/maps?output=js&q=%s">http://maps.google.com/maps?output=js&q=%s',rawurlencode($address));
$_result = false;
if($_result = file_get_contents($_url)) {
if(strpos($_result,'errortips') > 1 || strpos($_result,'Did you mean:') !== false) return false;
preg_match('!center:\\s*{lat:\\s*(-?\\d+\\.\\d+),lng:\\s*(-?\\d+\\.\\d+)}!U', $_result, $_match);
$_coords['lat'] = $_match[1];
$_coords['long'] = $_match[2];
}
return $_coords;
}