google 中的自定义图标锚点映射静态 API
Custom icon anchor point in google maps static API
我尝试使用 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
如何在查询中设置 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¢er=48.85777,2.2952
结果:
即使地图实际上居中,图标也不在起始位置...这应该以某种方式修复。 :/
编辑
所以......在这里你有我非常丑陋的解决方法:只是 re-set 你的标记的纬度值。通过尝试和错误,我得到了这个:
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 请求中的图像居中。另一方面,我们可以绘制符合我们目的的自定义图标。只需在图标中添加一些边距(透明 space)就可以解决问题。
2017 年 1 月 27 日 Google 报告 issue 2185 已修复。因此,从现在开始,您可以在静态地图中为自定义标记定义锚点位置 API.
文档也已更新:
You may specify an anchor point for the custom icon. The anchor point sets how the icon is placed in relation to the specified markers locations. By default, the anchor point of a custom icon is the bottom center of the icon image. You can specify a different anchor point using the anchor descriptor in conjunction with your icon. Set the anchor as an x,y point of the icon (such as 10,5), or as a predefined alignment using one of the following values: top, bottom, left, right, center, topleft, topright, bottomleft, or 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¢er=48.85777,2.2952
我尝试使用 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
如何在查询中设置 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¢er=48.85777,2.2952
结果:
即使地图实际上居中,图标也不在起始位置...这应该以某种方式修复。 :/
编辑
所以......在这里你有我非常丑陋的解决方法:只是 re-set 你的标记的纬度值。通过尝试和错误,我得到了这个:
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 请求中的图像居中。另一方面,我们可以绘制符合我们目的的自定义图标。只需在图标中添加一些边距(透明 space)就可以解决问题。
2017 年 1 月 27 日 Google 报告 issue 2185 已修复。因此,从现在开始,您可以在静态地图中为自定义标记定义锚点位置 API.
文档也已更新:
You may specify an anchor point for the custom icon. The anchor point sets how the icon is placed in relation to the specified markers locations. By default, the anchor point of a custom icon is the bottom center of the icon image. You can specify a different anchor point using the anchor descriptor in conjunction with your icon. Set the anchor as an x,y point of the icon (such as 10,5), or as a predefined alignment using one of the following values: top, bottom, left, right, center, topleft, topright, bottomleft, or 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¢er=48.85777,2.2952