当位置返回多个结果时,在谷歌地图中选择第一个匹配静态

Posted

技术标签:

【中文标题】当位置返回多个结果时,在谷歌地图中选择第一个匹配静态【英文标题】:selecting first match in google maps static when location returns multiple results 【发布时间】:2012-05-12 13:48:04 【问题描述】:

我正在使用 Google Maps 静态界面在我的 Web 应用程序中显示地图。我正在使用地址来确定地点(例如:街道名称、邮政编码城市、国家/地区),使用 php 生成地图嵌入 URL。这很好用,但有时某些地址会返回多个结果,并且地图会在同一地址放置多个 PIN(位置 A、B、C 等)!

示例 1:地址是一个地方 -> 一切正常,标记与地点地址一起显示 http://maps.google.com/maps?q=Skrita+ulica+5,+2000+Maribor,+Slovenija+(OAZA MIRU)&f=q&source=s_q&hl=sl&ie=UTF8&z=15&t=m&iwloc=addr&output=embed

示例 2:地址返回多个地点且带有地点名称的标记不显示 http://maps.google.com/maps?q=Ulica+Eve+Lovše+1,+2000+Maribor,+Slovenija+(Restavracija+in+Pizzeria+%22MISTERIUM%22+Mercator+Center+)&f=q&source=s_q&hl=sl&ie=UTF8&z=15&t=m&iwloc=addr&output=embed

是否有可能自动选择匹配地址上的第一个位置并显示示例 1 中的标记?

【问题讨论】:

【参考方案1】:

num 参数确定要显示多少个结果。将 num=1 添加到 URL 以将结果限制为只有一个。 Reference。 (你甚至可以指定num=0,但这似乎有点无意义)

注意:如果 URL 返回多个结果,这是因为搜索算法无法根据您的 q= 字符串确定正确的结果。将输出限制为仅第一个可能不会产生您想要的结果。

【讨论】:

这用于限制地图上显示的结果,但它破坏了标记中显示的标题。如果我将 num 参数设置为 1 (&num=1),它会自动显示该地点的标题,而不是我在查询字符串中设置的标题。知道为什么它不采用我在 () - (Restavracija+in+Pizzeria+%22MISTERIUM%22+Mercator+Center+) 之间的查询字符串中设置的标题吗?请参阅上面的我的地图网址。标记中的标题应该是我在q参数中()之间设置的字符串。 这是因为有多个结果,而 Google 地图不知道将您的文本应用到哪个结果。您所做的只是限制显示的结果数量:您并没有限制查询找到的数量。我确实警告过结果可能不是你想要的。 所以我不能强制地图在标记气泡中显示所需的信息吗?这个地址有很多结果(企业),但我需要的不在 Google 地图目录中?我想要这个地址的市场,但在气泡内显示正确的公司名称。有没有办法做到这一点? 确保您获得的标记完全符合您的要求的唯一方法是使用 API。 Google 地图网站提供了一定程度的控制,但不是您通过 API 获得的控制。 好吧,看来我将不得不使用 JS API

以上是关于当位置返回多个结果时,在谷歌地图中选择第一个匹配静态的主要内容,如果未能解决你的问题,请参考以下文章

如何在谷歌地图中平滑移动当前位置?

用户如何在谷歌地图颤振上添加多个标记

如何使用 php-mysql,js 在谷歌地图上显示多个位置

在谷歌地图上显示在线对象

GPS不准确时如何计算可能位置的面积(如在谷歌地图中)

在谷歌地图中保留用户位置中心 - Swift