Google地图标记颜色基于数据库值

时间:2014-02-27 14:17:45

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

如果该标记的数据库中的BusinessType字段是特定值,我希望Google地图上的标记颜色更改。

目前,我的地图可以通过列表框中的值针对不同的业务类型进行过滤。值为All(包括所有内容),Type1Type2

我已经使用以下内容将标记从默认设置更改为自定义图形,该图形效果很好,但正如预期的那样将它用于所有标记。

var marker = new google.maps.Marker({
    map: map,
    position: latlng,
    icon: 'BlueMarker.png'
});

我已经尝试了marker变量作为整体的各种if语句,只考虑了变量的icon部分,但是我不能让它使用基于它的不同图形BusinessType变量中的值。

有人可以指出我正确的方向吗?

这是标记的整个功能:

function createMarker(latlng, name, add1, add2, add3, town, county, address, businesstel, website) {

   var html = "<b>" + name + "</b> <br/>" + add1 + " <br/>"  + add2 + " <br/>" + add3 + " <br/>" + town + " <br/>" + county + " <br/>"
   + address + " <br/>" + " <br/>"+ " <b>" + "Tel: " + businesstel + " </b> <br/>" + "<a href="+"http://www.website.com> <font color="+"blue>"+ website +"</font> </a> <br/> <br/>";

var marker = new google.maps.Marker({
    map: map,
    position: latlng,
    icon: 'BlueMarker.png'
  });

google.maps.event.addListener(marker, 'click', function() {
    infoWindow.setContent(html);
    infoWindow.open(map, marker);
  });

markers.push(marker);
}

由于

1 个答案:

答案 0 :(得分:0)

这可能有点拉伸(取决于你的图标有多复杂),但是如果你熟悉SVG路径表示法(http://www.w3.org/TR/SVG/paths.html#PathData),你可以创建自定义SVG图标并更新{{1具有任何可用CSS3颜色的属性(例如,fillColor或#990000 - 基本上是从数据库返回的任何兼容颜色。)

请参阅官方文档以获取示例(https://developers.google.com/maps/documentation/javascript/examples/marker-symbol-custom)。