我工作的一个应用程序集成Mapquest服务地图和使用Mapquest服务API。
此时此刻我要实现以下目标:注册用户必须输入经纬度信息,并在数据库中该信息已被存储为几何类型的字段。 相反,看着自己帐户的用户会看到被输入的经纬度信息。
在早先的简化代码库我直接在MySQL查询实现这一点,通过使用MySQL函数AsText
和GeomFromText
。 但现在我对笨,需要做PHP转换
有什么相当于在PHP MySQL的AsText
和GeomFromText
功能?
我工作的一个应用程序集成Mapquest服务地图和使用Mapquest服务API。
此时此刻我要实现以下目标:注册用户必须输入经纬度信息,并在数据库中该信息已被存储为几何类型的字段。 相反,看着自己帐户的用户会看到被输入的经纬度信息。
在早先的简化代码库我直接在MySQL查询实现这一点,通过使用MySQL函数AsText
和GeomFromText
。 但现在我对笨,需要做PHP转换
有什么相当于在PHP MySQL的AsText
和GeomFromText
功能?
看来, PHP
unpack
功能是什么是需要提取的坐标信息。
MySQL
存储在WKB(驰名二进制)格式的几何领域。 在unpack
的时候提供适当的格式说明符的功能是能够提取信息。 以下代码是从测试脚本成功地提取所期望的信息。
请注意,我的format
的解压与基准略有不同。 这是因为WKB串并没有从MySQL与检索AsWKB()
函数,所以它包含微胖 。
<?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);
?>
参考文献的MySQL和ESRI网络 。
我也一样,我试图提取几何领域data.I正在使用MySQLi
类来检索数据行,并根据字段类型显示。
虽然我还没有想出如何在几何字段的数据进行解码,我可以通过查看它bin2hex
功能。 使用存储的点GeomFromText('POINT(-73.91353 42.80611)')
使用bin2hex
给我的50字符串值
0000000001010000008d7a8846777a52c0417dcb9c2e674540
字段类型号的部分列表可以发现这里 。
我希望这可以帮助你! 如果我发现更多的,我会在这里把它传递。