php mysql point类型进行转换

2024年12月27日00:04:04 科技 1583

最近项目中用到地理坐标,所以mysql就使用了point类型,当然查询的时候可以用mysql的空间函数实现,ST_X(p):获取点 p 的 X 坐标,ST_Y(p):获取点 p 的 Y 坐标。

但我觉得还是用php实现好点,让它自动转换,因为我用的thinkphp,在 ThinkPHP 框架中,get+字段名+Attr 是一种用于定义模型属性访问器(Accessor)的方法。属性访问器允许你在获取模型属性时对数据进行自定义处理。这种机制通常用于格式化数据、转换数据类型或进行其他数据处理操作。

我的location字段保存了地理坐标,所以我在模型层定义了一个getLocationAttr方法,让它自动转换,实现方法如下,希望有相同需求的人可以用上

    public function getLocationAttr($point): array
    {
        $offset = 4;  // 跳过前 4 个字节
        $byteOrder = ord($point[$offset]);
        $srid = unpack($byteOrder === 1 ? 'V' : 'N', substr($point, $offset + 1, 4))[1]; // 使用 'V' 解包小端序,'N' 解包大端序
        if ($srid !== 1) { // 1 表示 Point 类型
            return [
                'longitude' => null,
                'latitude' => null
            ];
        }
        $offset += 5; // 1 字节字节序 + 4 字节几何类型
        if ($byteOrder === 1) {
            $x = unpack('d', substr($point, $offset, 8))[1];
            $y = unpack('d', substr($point, $offset + 8, 8))[1];
        } else { // 大端序
            $x = unpack('d', strrev(substr($point, $offset, 8)))[1];
            $y = unpack('d', strrev(substr($point, $offset + 8, 8)))[1];
        }
        return [
            'longitude' => $x,
            'latitude' => $y,
        ];
    }


php mysql point类型进行转换 - 天天要闻

查询出来location自动转换


php mysql point类型进行转换 - 天天要闻

php mysql point类型进行转换 - 天天要闻

php mysql point类型进行转换 - 天天要闻

php mysql point类型进行转换 - 天天要闻

科技分类资讯推荐

小米YU7登场,新能源市场意味着什么? - 天天要闻

小米YU7登场,新能源市场意味着什么?

最近新能源汽车圈可热闹了,小米YU7的消息一出来,就像一颗石子投入平静的湖面,激起了层层涟漪。很多朋友都在好奇,小米YU7对中国新能源品牌到底意味着什么呢?今天咱就来好好唠唠。先说说新能源汽车的技术特点。如今的新能源汽车,那技术发展得是日新
超长续航,超级节能,吉利银河A7 EM-i官图发布 - 天天要闻

超长续航,超级节能,吉利银河A7 EM-i官图发布

车身侧面,该车采用了较为丰富的腰线设计,搭配密辐式轮圈以及车窗边缘亮黑色饰条,展现出不错的精致感。尽管当下流行的隐藏式车门把手并未出现在该车上,但传统结构的车门把手更便于操作,也符合部分消费者的使用习惯。
智野新旗舰,猛士M817粤港澳车展再露锋芒! - 天天要闻

智野新旗舰,猛士M817粤港澳车展再露锋芒!

作为中国首个豪华电动越野品牌,东风猛士科技携智野新旗舰——猛士M817震撼亮相。继上海车展发布后,猛士M817首次公开内饰细节、空间尺寸等核心产品力,可城可野、智野双全,重新定义智野生活全新高度。
中国移动董事长杨杰:“AI+”引领智能涌现,开启碳硅融合新未来 - 天天要闻

中国移动董事长杨杰:“AI+”引领智能涌现,开启碳硅融合新未来

6月18日,在2025上海世界移动通信大会(MWC上海2025)开幕式上,中国移动董事长杨杰发表题为《“AI+”引领智能涌现,开启碳硅融合新未来》的主旨演讲,围绕“人工智能+”主题,分享了三点思考。一是乘势而上,把握“AI +”时代机遇。杨杰指出,新一代信息技术正加速融入经济社会各领域,人工智能推动人类迈入“AI +”时代。...
为信任生产力充电!无限极练好规范经营基本功 - 天天要闻

为信任生产力充电!无限极练好规范经营基本功

当消费者对健康产品需求从“可用”升级为“可信任”,企业如何用合规经营与品质硬实力回应市场对信任的期待?2025年,大健康产业龙头无限极“6・16规范经营宣传日”迎来第九年。在受邀参加中国消费者杂志社主办的“优化消费环境共筑满意消费”座谈会上,无限极(中国)有限公司行政总裁黄健龙表示:“愿与社会各界携手共进...
特斯拉得州超级工厂将再次停产! - 天天要闻

特斯拉得州超级工厂将再次停产!

快科技6月18日消息,据媒体报道,特斯拉计划在7月第一周暂停其得克萨斯州超级工厂的生产活动,此次停产涉及ModelY和Cybertruck车型。这已经是该工厂在过去两个月内的第二次停产。此前在5月末,特斯拉曾将得克萨斯超级工厂原本的长周末延长为一周的停产,当时被认为是为了应对市场需求下降以及库存积压问题。此次停产正值美...
超享越级尊享空间,猛士M817打开生活想象 - 天天要闻

超享越级尊享空间,猛士M817打开生活想象

作为中国首个豪华电动越野品牌,东风猛士科技携智野新旗舰——猛士M817震撼亮相。继上海车展发布后,猛士M817首次公开内饰细节、空间尺寸等核心产品力,可城可野、智野双全,重新定义智野生活全新高度。
行业寒冬中显担当,比亚迪纾困乾城集团获肯定 - 天天要闻

行业寒冬中显担当,比亚迪纾困乾城集团获肯定

近日,有关“比亚迪山东经销商集团济南乾城汽车贸易有限公司(以下简称济南乾城)资金出现问题”的消息引发行业关注。此前,济南乾城在4月17日发布的《关于处理三保服务事宜的解决方案》公告中提到,“近两年由于比亚迪经销商政策调整,对我司的现金流管理带来巨大压力。加之山
“兆瓦闪充”的突破,比亚迪的阳谋 - 天天要闻

“兆瓦闪充”的突破,比亚迪的阳谋

如今,用户的这一愿望正逐步得到实现,不少车企在快充技术方面取得了突破,充电也越来越快,而比亚迪在今年3月17日发布的“兆瓦闪充”技术,更实现了5分钟补充400公里续航的充电速度,真正做到燃油车加油一样的补能效率。无论对用户还是对业界而言,这一技术性的突破都是具