Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图-更改图层图标大小_Javascript_Jquery_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 谷歌地图-更改图层图标大小

Javascript 谷歌地图-更改图层图标大小,javascript,jquery,google-maps,google-maps-api-3,Javascript,Jquery,Google Maps,Google Maps Api 3,我有一个问题,我试图创建一个使用谷歌地图悬停效果,你在右边的一个div上,一个相应的地图标记将增加大小。我尝试使用这里讨论的技术: 但这并不是很有帮助,因为它正在构建一个新的标记。我只是想扩大我现有的标记。我正在尝试这样做: var aMap = $container.googleMapClient("map"); var layer = aMap.layers[iconLayer]; layer.points[iconLayer].marker.getIcon().size = new goo

我有一个问题,我试图创建一个使用谷歌地图悬停效果,你在右边的一个div上,一个相应的地图标记将增加大小。我尝试使用这里讨论的技术:

但这并不是很有帮助,因为它正在构建一个新的标记。我只是想扩大我现有的标记。我正在尝试这样做:

var aMap = $container.googleMapClient("map");
var layer = aMap.layers[iconLayer];
layer.points[iconLayer].marker.getIcon().size = new google.maps.Size(45,33);
但不幸的是,这并没有改变可见大小。如果我在运行时检查图层,大小确实会改变。这种行为是不允许的吗?我真的必须破坏图层并渲染一个更大的图层,然后在mouseout上执行相反的操作吗?任何帮助都将不胜感激

  • 创建两个不同的标记图像,一个默认标记图像和一个悬停标记图像。(文件:)

  • 使用google.maps.Marker.setIcon()在悬停时交换markerImage(文档:)

  • 下面是一个如何使用标记图像的示例:


    marker.getIcon().size是只读的,因此不能在此处设置新的大小。而google.maps.Size(45,33)不会将图像拉伸到新的大小,只会更改图像的剪辑。

    您需要在上使用
    scaledSize
    属性

    正如LeJared所说,您需要创建两个不同的
    MarkerImage
    对象,并在它们之间进行交换


    MarkerImage
    对象是不可变的,因此无法动态更改大小。更一般地说,在Maps API中,需要使用set()函数设置属性,否则API将看不到更新。

    您能提供一个显示该行为的链接或JSFIDLE吗?这正是我最终要做的。我只是来写这个答案的。谢谢你的帮助。是的,这正是我最后要做的。谢谢您的反馈。@gabaum10您能分享一下您的代码吗?您是如何重新缩放标记图像的?