我正在开发一个集成 Mapquest 地图并使用 Mapquest API 的应用程序。
目前我想实现以下目标:注册用户必须输入纬度和经度信息,并且在数据库中该信息必须存储为几何类型字段。相反,查看其帐户的用户应该会看到输入的纬度和经度信息。
在早期的简化代码库中,我通过使用 MySQL 函数直接在 MySQL 查询中实现了这一点AsText
and GeomFromText
。但现在我在 CodeIgniter 上并且需要在 PHP 中进行转换
PHP 中是否有与 MySQL 等效的东西AsText
and GeomFromText
功能?
看来PHP
unpack
函数就是提取坐标信息所需的函数。
MySQL
以 WKB(众所周知的二进制)格式存储几何字段。这unpack
当提供正确的格式说明符时,函数能够提取该信息。以下代码来自成功提取所需信息的测试脚本。
请注意,我的format
解包与参考略有不同。这是因为未使用以下命令从 MySQL 检索 WKB 字符串AsWKB()
函数,所以它包含额外的填充 https://bugs.mysql.com/bug.php?id=69798.
<?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 http://dev.mysql.com/doc/refman/5.7/en/gis-data-formats.html#gis-wkb-format and ESRI网络 http://edndoc.esri.com/arcsde/9.0/general_topics/wkb_representation.htm.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)