mysql point WKB格式 php 解析 unpack

mysql point 类型如   POINT(118.624653 31.919936)

对应十六进制 000000001010000000a4693905af7ad504eb96afce08bef304

 

Internal Geometry Storage Format

https://dev.mysql.com/doc/refman/5.7/en/gis-data-formats.html

112704_8GEk_555881.png

php 函数 unpack对应解析

var_dump(
   unpack('h*', $l),
   unpack('ISRID/corder/Itype/dx/dy ', $l)
);

array(1) { [1]=> string(50) "000000001010000000a4693905af7ad504eb96afce08bef304" }

array(5) { ["SRID"]=> int(0) ["order"]=> int(1) ["type"]=> int(1) ["x"]=> float(118.624653) ["y "]=> float(31.919936) }

参数说明

'ISRID/corder/Itype/dx/dy'

ISRID:  

    "I" 无号整数 4个byte 

    "SRID" Spatial Reference System Identifier 空间参照标识符 0是二维平面

corder:

    "c" byte 1个byte  

    "order" 1是little-endian编码  0是big-endian编码

Itype:

    "I" 无号整数 4个byte 

    "type" Geometry types 如 0001:point 0003 polygon

dx:

    "d"倍精确浮点数  8个byte

    "x" x-coordinate

dy:

    "d"倍精确浮点数  8个byte 

    "y" y-coordinate

更多请参见

SRID http://dcx.sybase.com/1200/zh/dbspatial/spatial-reference-identifier.html

wkb格式 https://en.wikipedia.org/wiki/Well-known_text#Well-known_binary

php unpack http://blog.csdn.net/xiexingshishu/article/details/51222451

转载于:https://my.oschina.net/jszhang/blog/1618484

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值