Google Maps API imagePath本地图像不起作用

时间:2019-01-24 10:16:56

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

我已经按照我的期望使用了Google Maps Clustering及其工作方式。

但是,我在MarkerClusterer-imagePath中面临一个奇怪的问题。当我设置这个..

imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m',

工作正常。但是,当我这样做时。

var imgpath = '<?= SITE_ROOT_IMAGE_DEFAULT ; ?>m3.png';


imagePath: imgpath,

并警告它,为我提供了正确的相对路径/var/www/html/my-app/webroot/img/m3.png,该路径是我下载此图像的位置。但是它不起作用。

我也尝试过通过http添加。

imagePath: 'http://localhost/my-app/img/m3.png',

我能够看到我的图像,但效果不佳。

仅供参考,我也已将markerclusterer.js库下载到本地服务器中,并仅从本地请求。我正在使用Cakephp 3.x folder structure

我还尝试了其他类似方法。

imagePath: "../img/m",但它也不起作用。

有人可以指导我在这里做错什么吗?为什么我的imagePath没有被使用?

1 个答案:

答案 0 :(得分:1)

阅读the documentation时说:要使用自己的自定义群集图像,只需将图像命名为m[1-5].png或将imagePath选项设置为图像的位置和名称,如下所示:{{ 1}},用于图像imagePath: 'customImages/cat'cat1.png

您应使用相对路径到声明此路径的文件。

这是示例文件夹结构:

cat5.png

如果在具有上述文件夹结构的文件- cluster_images - m1.png - m2.png - m3.png - m4.png - m5.png - main.js 中声明imagePath,则应该为:

main.js

编辑:

如果要分别为每个图像设置样式并定义图像大小,则应使用var markerCluster = new MarkerClusterer(map, markers, {imagePath: 'cluster_images/m'}); 参数并分别声明每个群集图标。

styles

以上代码使用默认图像。再次用每个图片的相对路径替换URL,并更新尺寸以避免图片拉伸。