谷歌地图静态API中的自定义图标锚点

时间:2016-05-07 21:59:18

标签: google-maps google-static-maps

我尝试使用from _winreg import * aReg = ConnectRegistry(None, HKEY_LOCAL_MACHINE) aKey = OpenKey(aReg, LIBRARIES_REG_KEY) count, value, type = QueryInfoKey(aKey) ver_list = [EnumKey(aKey, x) for x in range(count) if EnumKey(aKey, x).startswith(version)] 参数将自定义标记的锚点设置到中心,但似乎忽略了它:

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

shadow:false

without custom marker 具有自定义标记且没有阴影参数的相同图像:

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

enter image description here

将自定义标记和阴影参数设置为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=icon:url|48.85777,2.2952&markers=48.86493,2.31033

enter image description here

2 个答案:

答案 0 :(得分:2)

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/static-maps/intro#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

centeredImage

答案 1 :(得分:0)

如何在查询中设置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

结果: centeredImage

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

修改
所以...在这里你有一个非常丑陋的解决方法:只需重新设置你的标记的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

有了这个结果: uglyWA

显然,通过这个级别的缩放和我的特定图标,只需在标记的Lat值中减去0.00077即可。

最终结论

实际上,没有办法直接从URL请求中居图像。另一方面,我们可以绘制符合我们目的的自定义图标。只需在图标(透明空间)中添加一些边距应该可以解决问题。