PHP 中 MySQL 二进制 GEOMETRY 字段的转换

2023-12-22

我正在开发一个集成 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(使用前将#替换为@)

PHP 中 MySQL 二进制 GEOMETRY 字段的转换 的相关文章

  • gmail 不断阻止 PHPmailer 登录

    我将在接下来的 8 小时内部署一个网站 而 Gmail 刚刚停止接受 PHPmailer 登录我的帐户 起初 它在测试过程中工作了几个小时 然后 它就停止工作了 我已经允许所有允许不太安全的应用程序从 gmail 登录 但它仍然不允许 ph
  • 检查php中位字段是否打开的正确方法是什么

    检查位字段是否打开的正确方法是什么 在 php 中 我想检查来自 db mysql 的位字段是否打开 这是正确的方法吗 if bit 1 还有其他方法吗 我看到有人使用代码ord http jameslow com 2008 08 12 m
  • openssl_pkey_get_details($res) 不返回公共指数

    我在用着这个例子 https stackoverflow com a 12575951 2016196使用 php 生成的密钥进行 javascript 加密openssl图书馆 但是 details openssl pkey get de
  • 搜索引擎如何找到相关内容? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Google 在解析网络时如何找到相关内容 例如 Google 使用 PHP 原生 DOM 库来解析内
  • 通过 Ajax 加载内容时,WORDPRESS 音频播放器未加载,MediaElement.js 未应用

    我正在创建一个 WordPress 主题 当我使用 ajax 加载内容时 它不会将 MediaElements js 应用于我的音频播放器 因此不会显示音频 我认为这是因为 MediaElement js 加载了 wp footer 并且此
  • 优雅地处理没有数据的 amcharts

    我想知道我的 dataProvider 是否为空 amCharts绘制时默认为null 我怎样才能动态地处理它 var chart AmCharts makeChart chartdiv theme none type serial dat
  • 如何使用 phpunit 运行单个测试方法?

    我正在努力运行一个名为testSaveAndDrop在文件中escalation EscalationGroupTest php with phpunit 我尝试了以下组合 phpunit EscalationGroupTest escal
  • 如何检查PHP变量是否包含非数字?

    我只是想知道检查 PHP 变量中是否有非数字的方法以及它是否也检测字符之间的空格 需要确保我的表单字段中没有添加任何奇怪的内容 提前致谢 如果您的意思是您只想要一个包含数字的值 那么您可以使用ctype digit http php net
  • MySQL/PDO::quote() 尽管使用 PDO::PARAM_INT 参数,但仍在整数周围加上引号

    无论我传递给什么值 数据类型对 它都会出现 pdo gt quote value type 它总是将其引用为字符串 echo pdo gt quote foo PDO PARAM STR foo as expected echo pdo g
  •  
    标记内删除

    我制作了简单的 BBCode 脚本 一切正常 但后来我使用了一个 javascript 库来美化我的代码 pre pre 现在我面临的唯一问题是 br 每行代码后面的标签 pre pre tags 所以问题是我怎样才能删除 br 标记哪些在
  • 生成大随机数 php [重复]

    这个问题在这里已经有答案了 我想使用 PHP 生成一个包含 75 个字符的数字 我到处寻找 但一无所获 除了这个 http dailycoding com tools RandomNumber aspx http dailycoding c
  • FPDI/FPDF:水印和打印多页

    我修改了这个堆栈问题 当用户尝试下载文件时在 pdf 文件上应用水印 https stackoverflow com questions 3983432 applying watermarks on pdf files when users
  • 如何在响应ajax codeigniter后停止执行其他控制器

    我想知道如何在响应输出 json 数据后停止执行函数和涉及的其他控制器 就我这里的情况而言 我只是打电话test 函数于dashboard控制器 In dashboard构造函数将执行MY Login library In MY Login
  • 扩展蓝图类?

    我想覆盖timestamps 函数中发现Blueprint班级 我怎样才能做到这一点 e g public function up Schema create users function Blueprint table table gt
  • 使用 preg_replace 仅替换第一个匹配项

    我有一个结构类似于以下的字符串 aba aaa cba sbd dga gad aaa cbz 该字符串每次都可能有点不同 因为它来自外部源 我只想替换第一次出现的 aaa 但其他人则不然 是否可以 可选的第四个参数预替换 http php
  • “使用未定义常量”注意,但该常量应该被定义

    共有三个文件 common php controller php 和 user php 文件 common php 如下所示 文件controller php看起来像 文件 user php 如下所示 执行脚本时 会给出通知 注意 使用未定
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • Woocommerce 结账自定义选择字段

    我有以下功能 将选择列表添加到 woo commerce 结账表单中 woocommerce form field airport pickup array type gt select class gt array airport pic
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • 一次播种多行 laravel 5

    我目前正在尝试为我的用户表播种 如果我像这样尝试 2 行 就会失败 如果我只使用单个数组而不是 users 数组内的 2 个数组来创建一些假数据 那么效果很好 我做错了什么 正确的方法是什么 class UserTableSeeder ex

随机推荐

  • 通过 Java 运行存储过程比直接在数据库上运行慢 30%

    我正在使用 Java 1 6 JTDS 1 2 2 也只是尝试了 1 2 4 但无济于事 和 SQL Server 2005 创建 CallableStatement 来运行存储过程 不带参数 我发现 Java 包装器运行相同的存储过程比使
  • .NET 4.0 重大更改 - 使用标记扩展作为 XAML 样式的属性设置器的值

    在 NET 3 5SP1 中 我有一个具有以下属性设置的样式
  • phonegap navigator.connection 未定义

    我使用时遇到问题Phonegap 我使用控制台创建了一个测试应用程序 phonegap create ProjectTest cordova platform add ios cordova build 然后打开生成的 Xcode 项目并向
  • 通用 jQuery 在 HTML5 验证后禁用所有表单上的提交按钮

    如果这是一个基本的事情 请原谅我 因为我是 Javascript jQuery 的新学习者 我一直在尝试禁用提交按钮以禁用多个提交 我在这里也遇到了多种解决方案 但所有这些都使用了特定的表单名称 但我想对所有页面上的所有表单应用全局解决方案
  • 检索播放列表中包含的视频 ID - YouTube API v3

    我一直在使用以下方法来检索特定 YouTube 播放列表中包含的所有视频 ID 标题和默认缩略图 以便在动态播放列表轮播中使用 然后将 ID 传递到一个数组 该数组用于动态创建缩略图轮播 请注意 播放列表 变量是通过外部化 XML 值定义的
  • 有没有一种方法可以在代码中克隆一个或多个实体(记录)

    注意 此时我在这个项目上停留在 2sxc v9 43 2 上 从我的内容类型中选择一组记录后 我需要能够复制它们并沿途更改其中一个字段 到目前为止 这是我几乎可行的想法 用例很简单 他们有人们可以注册的程序 他们每个季节都有变化 但变化很小
  • 使用支持 ASIO 的 portaudio 构建 pyaudio

    我在 win32 上运行 Python 2 7 3 MSC v 1500 32 位 英特尔 我需要构建支持 ASIO 的 portaudio 并将其绑定到 pyaudio 以在 Windows 7 下使用它 基本上我想从 python 访问
  • 如何在不使用 flatMapsGroupWithState 的情况下使用 Structured Streaming 2.3.0 在 Spark 中进行无状态聚合?

    如何在不使用 flatMapsGroupWithState 或 Dstream API 的情况下使用 Structured Streaming 2 3 0 在 Spark 中进行无状态聚合 寻找一种更具声明性的方式 Example sele
  • 使用迭代器调用擦除与 const_iterator

    为什么调用erase容器的成员函数const iterator fail 它适用于非常量iterator 这不会编译 因为container iterator and container const iterator是两种不同的类型 并且擦
  • 如何解决错误“不能一次多次借用 `*self` 作为可变的”[重复]

    这个问题在这里已经有答案了 我是 Rust 新手 这是一段计算机股票交易的代码 该策略将在以下情况下买入一些股票 SignalTrigger触发 并在 30 岁 90 岁之后以不同的方式出售这些股票 代码无法编译 这是代码 use std
  • 如何从日期中获取星期几名称?

    Given 03 09 1982我们怎么能说这是哪一周的哪一天呢 在这种情况下 它将是Tue 是否可以在单个查询中获取 SQL gt SELECT TO CHAR date 1982 03 09 DAY day FROM dual DAY
  • 错误:ENOENT,Heroku 中的 stat '/app/public/views/index.html'

    我在 Heroku 应用程序上提供静态视图时遇到错误 奇怪的是 Heroku 似乎将 app 附加到我的静态文件路径的前面 我不知道为什么 路径应该是 public views index html 我最近尝试了 Stack 提出的解决方案
  • 即时创建 Excel 文件并将其下载/保存在客户端上

    Question ASP NET Core 1 1 中以下代码的最后三行的替代方案是什么和 或解决方法是什么 在这最后三行VS2015正在抱怨HttpResponse does not contain a definition for Ou
  • Linux 的图形 DIFF 程序 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 搜索非 ASCII 文档

    我的计算机上的应用程序需要读入文本文件 我有好几个 其中一个不起作用 该程序无法读取它并告诉我其中某个地方有一个坏字符 我的第一个猜测是那里有一个非 ASCII 字符 但我不知道如何找到它 Perl 或任何通用正则表达式都会很好 有任何想法
  • 插入到不同服务器上的 MySQL 数据库

    在 mysite1 com 上运行的脚本中使用 PHP 和 MySQL 我尝试将 mysite2 com 上的表中的所有行和列复制到 mysite1 com 上的相同表 已创建 中 首先 我连接到两个数据库 我已经在 mysite2 com
  • Laravel 5 的 wherePivot 问题

    我正在使用 Laravel 5 但遇到问题 gt wherePivot 处理多对多关系 当我dd 该 SQL 看起来 Eloquent 正在数据透视表中查找具有 pose state 的记录 pose id 为 null 我希望这是一个简单
  • 无法从类型 [java.lang.Object[]] 转换为类型

    我有 Spring Web 应用程序 JPA Hibernate MySQL 我有两个 DAO 类 客户DAO Entity Table name customers public class Customer Id Column name
  • iOS 14 小部件中的动画

    我找不到在小部件中实现 ProgressBar 的解决方案 我明白了 如果文本组件的类型为 timer 则应该更改该组件 我看到默认的小部件时钟 带有漂亮的移动箭头动画 但是我可以在小部件中实现自定义动画吗 根据框架工程师的说法开发者苹果论
  • PHP 中 MySQL 二进制 GEOMETRY 字段的转换

    我正在开发一个集成 Mapquest 地图并使用 Mapquest API 的应用程序 目前我想实现以下目标 注册用户必须输入纬度和经度信息 并且在数据库中该信息必须存储为几何类型字段 相反 查看其帐户的用户应该会看到输入的纬度和经度信息