PHP中MySQL二进制几何字段的转换

PHP中MySQL二进制几何字段的转换,php,geospatial,mysql-spatial,Php,Geospatial,Mysql Spatial,我正在开发一个集成mapquest地图并使用mapquest API的应用程序 此时,我想实现以下功能:注册用户必须输入纬度和经度信息,并且在数据库中,这些信息必须存储为几何体类型字段。相反,查看帐户的用户应该看到输入的纬度和经度信息 在前面的简化代码库中,我通过使用MySQL函数AsText和GeomFromText直接在MySQL查询中实现了这一点。但现在我使用的是CodeIgniter,需要用PHP进行转换 PHP中是否有与MySQL的AsText和GeomFromText函数等效的功能?

我正在开发一个集成mapquest地图并使用mapquest API的应用程序

此时,我想实现以下功能:注册用户必须输入纬度和经度信息,并且在数据库中,这些信息必须存储为几何体类型字段。相反,查看帐户的用户应该看到输入的纬度和经度信息

在前面的简化代码库中,我通过使用MySQL函数
AsText
GeomFromText
直接在MySQL查询中实现了这一点。但现在我使用的是CodeIgniter,需要用PHP进行转换


PHP中是否有与MySQL的
AsText
GeomFromText
函数等效的功能?

我也在尝试提取几何字段数据。我正在使用
MySQLi
类检索数据行,并根据字段类型显示数据

虽然我还没有弄清楚如何解码几何字段数据,但我可以使用
bin2hex
函数查看它。使用
GeomFromText('point(-73.91353 42.80611)
使用
bin2hex
给我一个50个字符的字符串值

0000000001010000008d7a8846777a52c0417dcb9c2e674540
可以找到字段类型编号的部分列表


我希望这对你有帮助!如果我发现更多信息,我将在这里传递。

似乎提取坐标信息所需的是
PHP
unpack
函数

MySQL
以WKB(众所周知的二进制)格式存储几何体字段。
unpack
功能能够在提供适当的格式说明符时提取该信息。以下代码来自成功提取所需信息的测试脚本

请注意,我的解包
格式与参考文件略有不同。这是因为没有使用
AsWKB()
函数从MySQL检索WKB字符串,所以它会被删除



参考文献和。

@JoeJ的一个答案是多余的,可能是这一个,应该删除,并将好的部分编辑到另一个答案中。
<?php
    $padding = 0;
    $order   = 1;
    $gtype   = 1;
    $lon     = -73.91353;
    $lat     = 42.80611;

    $bindata = pack('LcLd2', $padding, $order, $gtype, $lat, $lon);

    printf("Packed: %s\n\n", bin2hex($bindata));

    $result = unpack('Lpadding/corder/Lgtype/dlatitude/dlongitude', $bindata);
    var_dump($result);
?>