【问题标题】:jQuery Google Map adding marker with styled image iconjQuery Google Map 添加带有样式图像图标的标记
【发布时间】:2014-08-20 05:02:19
【问题描述】:

我正在使用 jquery 移动 gmap 插件在谷歌地图中添加一个标记。我想在其中添加样式(类)。这怎么可能?普通图像图标工作正常 -

$('#map_canvas').gmap({'disableDefaultUI':false, 'zoom':15, 'callback': function() {
        var self = this;
        clientPosition = new google.maps.LatLng(34.0983425, -118.3267434);
        self.addMarker({
            position: clientPosition,
            icon: 'images/myImage.png',
            bounds: false
        });
        self.get('map').panTo(clientPosition);
    }});

我正在使用以下样式的圆形图像图标,它适用于普通图像 -

.icon_circle {
width:50px;
height:50px;
border-radius:100%;
border: 1px solid #07c;
box-shadow: 0 0 20px #07c;
}

我想使用与标记图标相同的样式。

【问题讨论】:

  • 你要什么?你想要一个圆形图标作为标记吗?为什么不替换您正在使用的 .png 图像?为什么不使用 SVG?
  • 首先 - 不只是一个文件,我将用一个 png 替换它。这些是客户端提供的多个文件,因此为每个文件创建一个样式化的 png 是不可行的。将来,它将用作存储在服务器上的动态图像名称。其次 - 这些图像也将是相机拍摄的图像。用户将拍照,将其上传到服务器并作为标记取回。我知道有一些选项,例如使用 PHP 裁剪上传的图像或图像数据 - 但我只是在寻找更简单的选项。因为我的样式已经在 CSS 中为其他图像创建了。

标签: jquery jquery-mobile google-maps-api-3 google-maps-markers


【解决方案1】:

原文:

我们通常会检查生成的 HTML 以获取类名(或至少是它的路径)并为此编写我们的 CSS。

如果我们找到一个名为 .gmap_icon_container 的东西,我们或许可以这样做:

.gmap_icon_container img {
  /* css here */
}

编辑:

按照我的建议,通过检查器爬行来访问谷歌地图标记有点困难(尽管可能,但并不可靠)

但是...如果您真的想设置这些样式,可以(我还没有测试过)使用 javascript google map API 设置自定义图标,然后访问该图标并设置通过 JQUERY 对其进行类,并使用 CSS 设置该类的样式。

通过 google api 设置标记:

var iconBase = 'http://myserver.com/images/mapicons';
var icons = {
  me: {
    icon: iconBase + 'mylocation.png'
  },
  others: {
    icon: iconBase + 'otherlocations.png'
  },
};

function addMarker(feature) {
  var marker = new google.maps.Marker({
    position: feature.position,
    icon: icons[feature.type].icon,
    map: map
  });
}

通过 JQUERY 获取类并设置其类:

$("img[src='http://myserver.com/images/mapicons/mylocation.png']")[0].addClass( "mylocation_icon" )
$("img[src='http://myserver.com/images/mapicons/otherlocations.png']").addClass( "otherlocations_icon" )

和css:

.mylocation_icon { /*css here*/ }
.otherlocations_icon { /*css here*/ }

【讨论】:

  • 我找不到那个课程。但是让我们假设我以某种方式发现了这一点。现在会有动态数量的标记。我需要一种风格的自我定位标记和不同风格的另一种定位标记。但所有其他位置标记样式将彼此相似。上述方法在那种情况下有效吗?
  • 我绝对不会那样做的。
  • 哈!是的,它可能相当狡猾,尤其是当谷歌地图方面的情况可能发生变化时,但就获得您想要的样式项目而言,这可能是唯一的方法。而且,不,你不会看到“gmap_icon_container”.. 这只是一个例子。查看我的编辑以获取更多建议。
猜你喜欢
  • 2016-06-22
  • 2013-09-13
  • 2014-08-08
  • 1970-01-01
  • 2017-05-15
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
  • 1970-01-01
相关资源
最近更新 更多