【问题标题】:Custom icon anchor point in google maps static API谷歌地图静态 API 中的自定义图标锚点
【发布时间】:2016-05-07 21:59:18
【问题描述】:

我尝试使用shadow:false 参数将自定义标记的锚点设置为中心,但它似乎被忽略了:

这是没有自定义标记的图像:

https://maps.googleapis.com/maps/api/staticmap?size=1024x512&path=weight:3|color:0x000000FF|enc:apeiH_h_M{H}LqFjJ_CkFsB_H}@mFUcG]qFm@mt@uM\&markers=48.85777,2.2952&markers=48.86493,2.31033

带有自定义标记且没有阴影参数的相同图像:

https://maps.googleapis.com/maps/api/staticmap?size=1024x512&path=weight:3|color:0x000000FF|enc:apeiH_h_M{H}LqFjJ_CkFsB_H}@mFUcG]qFm@mt@uM\&markers=icon:url|48.85777,2.2952&markers=48.86493,2.31033

自定义标记和阴影参数设置为false的相同图像:

https://maps.googleapis.com/maps/api/staticmap?size=1024x512&path=weight:3|color:0x000000FF|enc:apeiH_h_M{H}LqFjJ_CkFsB_H}@mFUcG]qFm@mt@uM\&markers=shadow:false|icon:url|48.85777,2.2952&markers=48.86493,2.31033

【问题讨论】:

标签: google-maps google-static-maps


【解决方案1】:

2017 年 1 月 27 日,Google 报告称issue 2185 已修复。因此,从现在开始,您可以在 Static Maps API 中为自定义标记定义锚点位置。

文档也更新了:

您可以为自定义图标指定一个锚点。锚点设置图标相对于指定标记位置的放置方式。默认情况下,自定义图标的锚点是图标图像的底部中心。您可以将锚描述符与您的图标结合使用来指定不同的锚点。将锚点设置为图标的 x、y 点(例如 10,5),或使用以下值之一作为预定义对齐方式:top、bottom、left、right、center、topleft、topright、bottomleft 或 bottomright .

https://developers.google.com/maps/documentation/maps-static/start#CustomIcons

所以您现在可以将示例重写为

https://maps.googleapis.com/maps/api/staticmap?size=640x512&path=weight:3|color:0x000000FF|enc:apeiH_h_M{H}LqFjJ_CkFsB_H}@mFUcG]qFm@mt@uM\&markers=anchor:center|icon:http%3A%2F%2Fgoo.gl%2FavYzpd|48.85777,2.2952&markers=48.86493,2.31033&center=48.85777,2.2952

【讨论】:

    【解决方案2】:

    在查询中设置center参数怎么样?

    https://maps.googleapis.com/maps/api/staticmap?size=640x512&path=weight:3|color:0x000000FF|enc:apeiH_h_M{H}LqFjJ_CkFsB_H}@mFUcG]qFm@mt@uM\&markers=icon:http%3A%2F%2Fgoo.gl%2FavYzpd|48.85777,2.2952&markers=48.86493,2.31033&center=48.85777,2.2952
    

    结果:

    即使地图实际上居中,图标也不在起始位置...这应该以某种方式修复。 :/

    编辑
    所以......在这里你有我非常丑陋的解决方法:只需重新设置标记的 Lat 值。通过尝试和错误,我得到了这个:

    https://maps.googleapis.com/maps/api/staticmap?size=640x512&path=weight:3|color:0x000000FF|enc:apeiH_h_M{H}LqFjJ_CkFsB_H}@mFUcG]qFm@mt@uM\&markers=icon:http%3A%2F%2Fgoo.gl%2FavYzpd|48.857,2.2952&markers=48.86453,2.31033
    

    有了这个结果:

    显然,使用这种缩放级别和我的特定图标,在标记的 Lat 值中减去 0.00077 就足够了。

    最终结论

    实际上,无法从 URL 请求中将图像居中。另一方面,我们可以绘制符合我们目的的自定义图标。只需在图标中添加一些边距(透明空间)就可以了。

    【讨论】:

    • 问题不在于地图居中
    • 给定的解决方案是不可接受的,因为它只适用于给定的 lon/lat/zoom
    • 我能想到的唯一可接受的选项是在图标中添加一些透明空间(边距)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 2016-08-20
    • 1970-01-01
    • 2015-04-14
    • 1970-01-01
    • 2012-09-21
    相关资源
    最近更新 更多