使用PHP从Parse平台的ParseGeoPoint对象中获取经纬度的方法
解决方案
报错的核心原因是Parse\ParseGeoPoint为对象类型,不支持数组下标[]形式的属性读取,你之前注释的通过方法读取属性的思路正确,只是调用方法不符合Parse PHP SDK的规范。
ParseGeoPoint内置了专用的经纬度读取方法,修改你的循环逻辑即可正常取值:
$cordquery = new ParseQuery("Object"); $cordquery->equalTo("cityCode", 1); $xd = $cordquery->find(); foreach($xd as $g){ $geopoint = $g->get('location'); // 先校验字段类型避免空值/类型不匹配报错 if ($geopoint instanceof \Parse\ParseGeoPoint) { $lat = $geopoint->getLatitude(); $lng = $geopoint->getLongitude(); // 后续业务逻辑 echo "纬度: {$lat}, 经度: {$lng}"; } }
如果是使用旧版本的Parse PHP SDK,也可以直接访问对象的公共属性取值:$geopoint->latitude、$geopoint->longitude,和上述getter方法返回结果完全一致,兼容性更强的场景优先使用内置getter方法。
内容的提问来源于stack exchange,提问作者Adrian Zalewski
相关产品推荐
相关产品推荐

