由地图图块切断的符号

时间:2014-07-20 17:57:53

标签: javascript google-maps google-maps-api-3

当我向折线添加箭头时,当箭头位于地图图块的边缘时,它会被切断。这可以使用文档(https://developers.google.com/maps/documentation/javascript/examples/overlay-symbol-arrow)中的示例代码重现,只需将其拖动并移动一点。

以下是不在边缘时的样子:

.

以下是它的外观:

.

版本(3.16)和实验(3.17)版本都存在问题。我已在google's bugtracker上报告了这一点,但可能需要数年时间才能解决问题。那么,有没有人知道解决方法?

编辑:哦,我应该补充说,它不会发生在小行程中,它必须像图像上那样大一些。

1 个答案:

答案 0 :(得分:3)

<强>问题:

使用预定义的符号路径时会发生错误。

// Define a symbol using a predefined path (an arrow)
// supplied by the Google Maps JavaScript API.
var lineSymbol = {
    path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW
};

JSFiddle demo

<强>解决方案:

创建自己的符号路径,问题将不再出现。

// Define your custom symbol path
var lineSymbol = {
    path: 'M -2,0 0,-2 2,0 z',
    strokeColor: '#F00',
    fillColor: '#F00',
    fillOpacity: 1
};

JSFiddle demo

非常容易修复但它仍然是一个错误,所以我认为你创建一个错误报告是件好事。

修改

我们收到了Google的反馈。

  

jsfiddle显示的符号太大了。

     

https://developers.google.com/maps/documentation/javascript/3.exp/reference#Symbol

     

'scale'参数的文档说'缩放后,符号必须位于以符号锚'为中心的22像素的正方形内