通过 Google Places API 解析地址

2024-02-26

我有一个巨大的(50k)数据库,其地址如下

12340 Via Moura, San Diego, CA, United States
17029 Avenida Cordillera, San Diego, CA, United States
3324 Sandleheath, Sarasota, FL 34235, USA

它们是使用 google Places Autocomplete js api 自动完成的,然后存储在数据库中。 现在我需要得到不同的部分state, city, zip...这些地址等。 可以用一些谷歌的API来做吗? 有任何想法吗?


我找到了解决方案。 需要对 google place API 进行两次 API 调用。 第一个调用通过完整地址获取 PLACE_ID,第二个调用通过 PLACE_ID 获取有关地址的所有数据。

        $params = [
            'key' => env('GOOGLE_API_KEY'),
            'query' => 'FULL_ADDRESS',
            'types' => 'address'
        ];
        $guzzle_client = new Client();
        $res = $guzzle_client->request('GET', 'https://maps.googleapis.com/maps/api/place/textsearch/json?parameters',
            [
                'query' => $params
            ]
        );

        $prediction = json_decode($res->getBody(), true);
        if ($prediction['status'] == 'OK') {
            $paramsID = [
                'key' => env('GOOGLE_API_KEY'),
                'placeid' => $prediction['results'][0]['place_id'],
            ];
            $guzzle_clientID = new Client();
            $resID = $guzzle_clientID->request('GET', 'https://maps.googleapis.com/maps/api/place/details/json',
                [
                    'query' => $paramsID
                ]
            );

            $predictionID = json_decode($resID->getBody(), true);

            $address_components = $predictionID['result']['address_components'];
            $address = [];
            foreach ($address_components as $component) {
                switch ($component['types'][0]) {
                    case 'street_number':
                        $address['street_number'] = $component['short_name'];
                        break;
                    case 'route':
                        $address['street_name'] = $component['short_name'];
                        break;
                    case 'locality':
                        $address['city'] = $component['short_name'];
                        break;
                    case 'administrative_area_level_1':
                        $address['state'] = $component['short_name'];
                        break;
                    case 'postal_code':
                        $address['zip'] = $component['short_name'];
                        break;
                }
            }
            $addresses[]= $address;
        } else {
            dd('Not found place');
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 Google Places API 解析地址 的相关文章

  • 简单的 PHP 条件帮助: if($Var1 = in list($List) and $Cond2) - 这可能吗?

    这是一个可能的功能吗 我需要检查一个变量是否存在于我需要检查的变量列表中 并且 cond2 是否为 true 例如 if row name 1 2 3 Cond2 doThis 它对我不起作用 我在复制粘贴中更改的只是我的列表和变量名称 i
  • 重定向而不改变url

    我总是不喜欢 htaccess 我正在尝试建立一个所有请求都通过index php 的网站 但我希望URL 类似于www sample com home 该网址实际上会加载 www sample com index php page hom
  • 如何测试 google.maps.Geocoder?

    你好 我正在尝试编写一个 简单 测试来检查反应类组件状态更改 具体来说 我正在测试如果 Google 成功对我发送的某些字符串 地址 进行地理编码 lat 纬度 和 lng 经度 状态是否会发生变化 这是我想测试的示例 i e the la
  • 单词之间没有空格的语言(例如亚洲语言)中的断词?

    我想让 MySQL 全文搜索适用于日语和中文文本以及任何其他语言 问题在于这些语言以及可能其他语言通常在单词之间没有空格 当您必须键入与文本中相同的句子时 搜索没有用 我不能只在每个字符之间添加空格 因为英语也必须有效 我想用 PHP 或
  • 在 php 中为类自动生成 getter 和 setter 的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常创建一个包含一些私有变量的类 当设置此类的实例时 应该可以使用 getter 和 setter 填充该类的所有变量 有没有一种简单的方法可
  • Yii 使用 ajax 进行分页

    我需要使用ajax启用分页 我的代码 控制器 更新内容ajax function actionIndex dataProvider new CActiveDataProvider News array pagination gt array
  • 如何在Android中读取谷歌地图的kmz文件

    我有 KMZ 文件 我想解析该 KMZ 文件 以便我可以读取我尝试使用的该文件的数据KmlLayer但没有从中得到任何帮助这是我的代码 InputStream inputStream new FileInputStream path Kml
  • 如何在响应ajax codeigniter后停止执行其他控制器

    我想知道如何在响应输出 json 数据后停止执行函数和涉及的其他控制器 就我这里的情况而言 我只是打电话test 函数于dashboard控制器 In dashboard构造函数将执行MY Login library In MY Login
  • Woocommerce 让产品显示在存档页面中

    我正在尝试让所有产品显示在我商店的存档页面中 我想知道他们的id我正在使用我的一个钩子 它在 wp head 上运行并检查 if is product category 我想以某种方式访问 产品的查询并获取它们的 ID if is prod
  • 如何从父类函数访问子类中定义的常量?

    我从 php net 看到这个例子 但 c MY CONST 仅在 5 3
  • 蛋糕控制台 2.2.1:烘焙错误

    运行 MAMP 的 OSX 机器 CakePHP 2 2 1 已正确安装和配置 这意味着当我浏览到 Index php 文件时 所有绿色条都显示出来 我已经完成了博客教程 并且正在开发我的第二个应用程序 其中脚手架已启动并运行 现在我第一次
  • 使用 preg_replace 仅替换第一个匹配项

    我有一个结构类似于以下的字符串 aba aaa cba sbd dga gad aaa cbz 该字符串每次都可能有点不同 因为它来自外部源 我只想替换第一次出现的 aaa 但其他人则不然 是否可以 可选的第四个参数预替换 http php
  • 使用 SSL 证书验证 Web 浏览器

    是否可以使用 ssl 证书对 Web 浏览器进行身份验证 假设我在应用程序中存储私钥 有什么方法可以从浏览器读取密钥并尝试基于该私钥进行身份验证 您可以使用 SSL TLS 客户端证书身份验证来对浏览器 用户进行身份验证 服务器必须请求客户
  • PHP 在输入流中使用 fwrite 和 fread

    我正在寻找将 PHP 输入流的内容写入磁盘的最有效方法 而不使用授予 PHP 脚本的大量内存 例如 如果可以上传的最大文件大小为 1 GB 但 PHP 只有 32 MB 内存 define MAX FILE LEN 1073741824 1
  • 通过 $_SESSION 从一个脚本发送到另一个脚本期间数据丢失

    我正在尝试将一个充满属性的对象从一个 PHP 发送到另一个 PHP SESSION object obj where obj是一个用 foreach 循环指定的对象 foreach array of objects as obj SESSI
  • PHP 中只保留数组的前 N ​​个元素? [复制]

    这个问题在这里已经有答案了 有没有办法只保留数组的前 N 个 例如 10 个 元素 我知道有array pop 但是有没有更好 更优雅的方法呢 您可以使用array slice http php net array slice or arr
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • php 错误 fopen(): 文件名不能为空

    发送带有附件代码的电子邮件工作正常 最近我们已将文件传输到另一个托管服务器 idk 发生了什么 它显示以下错误 警告 fopen 第 106 行 home hugerecruitmetnt public html validatecva p
  • 一次播种多行 laravel 5

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

随机推荐

  • 如何使用 GDAL 从 tiff 和 4 个角纬度和经度创建 geotiff [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一张没有 TIFF 格式地理数据的图像 地图 我需要从我的图像中获取 GeoTIFF 文件 我的地
  • 为什么 tomcat 的数据库连接池有两个选项(tomcat-dbcp 和 tomcat-jdbc)?

    我想将数据库连接池添加到现有应用程序 我找到了两个基于tomcat的库tomcat dbcp and tomcat jdbc 我刚刚遇到麻烦了 我应该选择哪一个 总之 Tomcat 提交团队成员的注释 请参阅here https bz ap
  • 使用私有构造函数实例化内部类

    我正在尝试使用反射来创建类的实例 但它是内部密封的并且有私有构造函数 我想知道如何初始化它 并且作为框架的一部分 我只能使用反射将其取出 internal sealed class ABC private ABC string passwo
  • 为什么“pip3 install netifaces”在 Debian 10 Buster 上失败?

    我在 AWS EC2 上设置了一个新的 Debian 10 Buster 实例 并且能够安装依赖于 netifaces 的 pip3 软件包 但是当我第二天返回时 该软件包崩溃并报告 netifaces 中的错误 如果我尝试运行 pip3
  • iPhone 应用内购买商店工具包错误 -1003“无法连接到 iTunes Store”

    我一直致力于添加应用内购买 并且能够使用 Store Kit 创建和测试应用内购买 耶 在测试过程中 我以一种导致应用程序在购买过程中崩溃的方式运行了我的应用程序 所以我猜接收 paymentQueue updatedTransaction
  • Bash 命令替换给出奇怪的不一致输出

    由于与此问题无关的某些原因 我不是直接在 bash 脚本中运行 Java 服务器 而是通过单独的子 shell 下的命令替换在后台运行 该子命令的目的是返回 Java 服务器的进程 ID 作为其标准输出 有问题的片段如下 launch da
  • 在 C++ 标识符中使用下划线的规则是什么?

    在 C 中 使用某种前缀来命名成员变量是很常见的 以表示它们是成员变量 而不是局部变量或参数 如果您有 MFC 背景 您可能会使用m foo 我也见过myFoo偶尔 C 或者可能只是 NET 似乎建议仅使用下划线 如下所示 foo C 标准
  • 我想使用 pyqt5 的拖放方法获取并显示图像

    我想使用 pyqt5 的拖放方法获取并显示图像 例如 像这张图片一样 我想制作拖放空间和图像显示空间 import sys from PyQt5 QtWidgets import QPushButton QWidget QLineEdit
  • CUDA 编译器 (nvcc) 宏

    是否有我可以使用的 CUDA 的 define 编译器 nvcc 宏 如 Windows 的 WIN32 等 我需要这个用于 nvcc 和 VC 编译器之间通用的头代码 我知道我可以继续定义我自己的并将其作为参数传递给 nvcc 编译器 D
  • C++:像使用数组一样使用 std::vector 是否安全?

    我需要有一个固定大小的元素数组 并调用它们需要了解它们如何放置在内存中的函数 特别是 功能类似于glVertexPointer 需要知道顶点在哪里 它们彼此之间有多远等等 在我的例子中 顶点将是要存储的元素的成员 要获取此数组中元素的索引
  • ggplot2:颜色随 y 轴值变化的条形图

    我有这个简单的代码 数据 条形图 dat lt c Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec val lt c 2 5 3 2 5 3 3 1 0 2 6 4 3 5 5 2 1 9 2
  • 使用 perl Archive::Zip 创建 *.epub -- epubchecker 错误

    我正在编写一个 perl 脚本 它将从给定的父文件夹中压缩一组文件并创建一个 epub 文件 该过程工作正常 我可以在 adobe 数字版本中打开 epub 但我收到 epubchecker 错误 Required MTA INF cont
  • 在.NET Core项目中引用外部DLL

    我有自己的 dll 文件 我曾经在 Nodejs 中与 Edge js 一起使用 我现在尝试将它与 dot net core 应用程序一起使用 但没有找到 没有如何访问它或定义它 有没有类似的东西 files MyLibrary dll o
  • 使用 FileOpenPicker 打开本地数据路径

    数据 我的文件 我想在我的 Hololens 应用程序中打开上面的数据路径 该路径位于我的应用程序文件夹 HoloApp Data myFiles 的本地 据我了解 执行此操作的主要方法是使用 FileOpenPickers 我读过API
  • 如何计算置信区间并将其绘制在条形图上

    我怎样才能绘制出一个条形图 data 1x10 cell 其中单元格中的每个值都有不同的尺寸 例如 3x100 3x40 66x2 等 我的目标是获得一个条形图 其中有 10 组条形图 每组中每个值有 3 个条形图 在条形图上 我希望它显示
  • 在 MATLAB 中使用 ROI

    我有一个 MATLAB 期末项目 需要帮助 我构建了一个 GUI 并使用显示图像imshow功能 现在我想要 从图像中选择区域并获取所选区域的像素 我知道 ROI 方法 但我不知道如何使用它 所以如果 有人可以向我解释一下 谢谢 如果您有图
  • 使用 grails-spring-security-rest 插件在 /api/login OPTIONS 请求上不允许使用 405 方法(战斗仍在继续......)

    在我的应用程序中 我使用 grails spring security rest 插件 目前正处于构建身份验证流程的阶段 如果我使用休息客户端 一切都会按预期工作 我可以通过在 json 中发布用户名和密码来登录并取回令牌 完美的 现在 我
  • 如何强制解压 Eclipse 插件?

    我的eclipse插件必须解压 如何强制安装程序解压它 如果直接把jar文件丢进jar包会解压吗plugins folder 可以在配置包括插件在内的功能时选择此选项 转到插件列表 选择您的插件并选中 安装后解压插件存档 可以说 这个属性应
  • 如果a和b只互相引用,GC会收集它们吗?

    如果a和b只互相引用 GC会收集它们吗 您能否帮忙解释一下原因或提供参考文档来解释该逻辑 非常感谢 是的 如果不存在更强烈的引用 它们将成为 GC 的候选者 需要注意的是 并非任何强引用都会在内存中保存对象 这些必须是从垃圾收集根链接的引用
  • 通过 Google Places API 解析地址

    我有一个巨大的 50k 数据库 其地址如下 12340 Via Moura San Diego CA United States 17029 Avenida Cordillera San Diego CA United States 332