【问题标题】:Getting autocomplete googleMaps data into a Delphi combobox将自动完成的 googleMaps 数据放入 Delphi 组合框
【发布时间】:2020-06-20 18:26:58
【问题描述】:

我正在做一个与 GoogleMaps APi 交互的 Delphi 传输应用程序,当我输入方向的起始地址时,我想建议来自自动完成 Google Maps API 的所有“附近”名称。

当 OnChange 属性发生更改时,所有这些都将显示在 TCombobox 中。

这可能吗???听说过吗???

非常感谢 格温内尔

【问题讨论】:

    标签: delphi autocomplete google-maps-api-3


    【解决方案1】:

    Google Maps API 的一部分称为The Google Places Autocomplete API。您可以发送请求(在参考页面的示例部分中,还有用于您目的的边界示例),因为您将在组合框中输入内容(理想情况下,在错误更正一些短暂的延迟之后)。结果,您可以接收 JSON 或 XML 格式的文件。解析后,您将获得相应建议的列表。

    我不确定Google Maps API Key;如果可以在独立应用程序中使用它(以及限制),因为我还没有实现谷歌地图的静态部分。

    【讨论】:

      【解决方案2】:

      我的第一个想法(假设一种基于远程控制 Web 界面的方法)是:这可以使用TWebBrowser 和朋友(IWebBrowser2、IHTMLElement 等)来解决。请参阅我在this question 上的回答以了解这一点。您可以使用Embedded Web Browser from bsalsa 轻松访问所有 Internet Explorer 功能。

      我的第二个想法是:官方 API 中可能有这方面的一部分。但是这个我不知道。如果没有,那么上述方法可能是一种(工作密集型)解决方法。

      【讨论】:

      • 如果您可以让 googleMaps 自己完成所有工作,而只使用浏览器,那就少了很多工作。然后,您可以通过从文档对象模型 DOM 中提取数据来简单地将其功能与您的应用程序集成。我会调查 bSalsa 的 TEmbeddedWB 或用于 delphi 的 ChromiumEmbeddedFramework (CEF)。
      • @Gwenael - 我也会这样做;我的意思是让网络浏览器做它打算做的事情。还有很多完整的(带有或不带有 jQ​​uery)示例,例如 this one,您可以简单地将其复制粘贴到应用程序的 Web 部分。关于从这种控件获取数据我不能告诉你更多,但肯定会有一些标准控件。关于我的回答;这是一个解决方案,但考虑到使用免费 API 密钥的点击次数限制为 1000 次,您可以在输入时非常快速地使用。
      • @Warren P +1 提及 CEF。不知道!
      【解决方案3】:

      是的,这是可能的。

      我编写了一个免费的开源组件,它实现了 Google Place Autocomplete 和 Google Place Details API:

      https://carbonsoft.co.za/components/

      https://github.com/RynoCoetzee/TRCGPlaceAutoCompleteCombo

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-10
        • 2011-07-31
        • 1970-01-01
        • 1970-01-01
        • 2011-08-07
        相关资源
        最近更新 更多