改变谷歌地理图表标记为自定义png图标
Change Google Geochart marker into a custom png icon
我想寻求帮助如何改变圆圈标记在谷歌地理地图
我已经在这个链接上实现了答案。
appendChild to SVG defs在Marker for Geochart API中创建图像背景
可惜,记号笔还在那里。
下面是我的代码: <html>
<head>
<script type='text/javascript' src='https://www.google.com/jsapi'></script>
<script type="text/javascript">
var ivalue_1 = new Array();google.load('visualization', '1', {packages: ['geochart']});function drawVisualization() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Country'); // Implicit domain label col.
data.addColumn('number', 'Value'); // Implicit series 1 data col.
data.addColumn({type:'string', role:'tooltip', p:{html:true}});
data.addRows([[{v:"NO-02",f:"ASKER & BÆRUM"},1,"ASKER & BÆRUM"]]);
ivalue_1['NO-02'] = 'NO-02||ASKER & BÆRUM||ASKER & BÆRUM||lorem ipsum';
data.addRows([[{v:"NO-03",f:"Oslo"},2,"Oslo"]]);
ivalue_1['NO-03'] = ' NO-03||Oslo||Oslo||lorem ipsum';
data.addRows([[{v:"NO-01",f:"Østfold"},3,"Østfold"]]);
ivalue_1['NO-01'] = ' NO-01||Østfold||Østfold||lorem ipsum';
data.addRows([[{v:"NO-07",f:"Vestfold"},4,"Vestfold"]]);
ivalue_1['NO-07'] = ' NO-07||Vestfold||Vestfold||lorem ipsum';
data.addRows([[{v:"NO-11",f:"Rogaland"},5,"Rogaland"]]);
ivalue_1['NO-11'] = ' NO-11||Rogaland||Rogaland||lorem ipsum';
data.addRows([[{v:"NO-06",f:"Buskerud"},6,"Buskerud"]]);
ivalue_1['NO-06'] = ' NO-06||Buskerud||Buskerud||lorem ipsum';
var options = { colorAxis: {minValue: 1, maxValue:6, colors: ['#349429','#349429','#349429','#349429','#349429','#349429']},
legend: 'none',
backgroundColor: {fill:'transparent',stroke:'#CCCCCC' ,strokeWidth:0 },
datalessRegionColor: '#ddd',
displayMode: 'markers',
sizeAxis: {minValue: 1, maxValue:6,minSize:10, maxSize: 10},
enableRegionInteractivity: 'true',
resolution: 'provinces',
region:'NO',keepAspectRatio: false,width:'',
height:'215',
tooltip: {isHtml: true, textStyle: {color: '#555555'}, trigger:'focus'}
};var geochart = new google.visualization.GeoChart(
document.getElementById('map_canvas_1'));
google.visualization.events.addListener(geochart, 'select', function() {
var selection = geochart.getSelection();
if (selection.length == 1) {
var selectedRow = selection[0].row;
var selectedRegion = data.getValue(selectedRow, 0);
var japol = ivalue_1[selectedRegion].split('||');
jQuery("#lightBoxContent h2 span").append(japol[1]);
jQuery("#lightBoxContent h3 span").append(japol[2]);
jQuery("#lightBoxContent h4 span").append(japol[3]);
jQuery("#transparentlightbox").fadeIn("slow");
}
geochart.draw(data, options);
});
google.visualization.events.addListener(geochart, 'ready', function () {
var patt = document.createElementNS('http://www.w3.org/2000/svg', 'pattern');
patt.setAttribute('id', 'img1');
patt.setAttribute('patternUnits', 'userSpaceOnUse');
patt.setAttribute('width', '20');
patt.setAttribute('height', '20');
patt.setAttribute('x', '0');
patt.setAttribute('y', '0');
var image = document.createElementNS('http://www.w3.org/2000/svg', 'image');
image.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', 'https://cdn1.iconfinder.com/data/icons/yooicons_set01_socialbookmarks/512/social_google_box.png');
image.setAttribute('x', '0');
image.setAttribute('y', '0');
image.setAttribute('width', '24');
image.setAttribute('height', '24');
var defs = document.getElementsByTagName('defs')[0];
patt.appendChild(image);
defs.appendChild(patt);});
geochart.draw(data, options);
}
google.setOnLoadCallback(drawVisualization);
</script>
</head>
<body>
<div id='map_canvas_1' class='i_world_map' style="width:288px; height: 215px;"></div>
</body>
</html>
这个代码不能工作。标记仍然是绿色的,我无法将其更改为自定义png图标。请帮帮我。
提前感谢。
你必须用defs标签内的图像模式填充所有的标记,这是Demo-Jqfaq,在"geochart"底部添加下面的代码,"ready"函数将使其工作。
var markers = document.getElementsByTagName('circle');
for(i=0; i<markers.length;i++)
{
markers[i].setAttribute("fill", "url(#img1)");
}
相关文章:
- 为自定义网站创建JavaScript搜索框,创建显示搜索结果的弹出窗口
- 在JQuery中将页面翻转转换为自定义url
- 在 Javascript 中将 var 转换为自定义类
- 无法使用ngShow为自定义指令制作动画
- 将用户键入的模型更改为自定义的Angular指令
- 为自定义 Javascript 处理器输出创建源映射
- 嵌入视频,将黑色背景更改为自定义图像或第一个视频场景
- 为什么将 ng-select 替换为自定义指令会导致$http请求不会每隔一段时间发送一次
- 谷歌地图V3 - 如何将每个位置的标记更改为自定义图标
- 如何在 DOM 中为自定义事件添加侦听器
- 在javascript中将日期转换为自定义格式
- Ajax - Spring 发送 javascript 对象并接受为自定义对象.客户端发送的请求在语法上不正确
- 如何为自定义聚合物元素创建方法并在主应用程序中调用它
- 当用户为下拉列表选择值时强制提交,除非该值为“自定义”
- 谷歌地图为自定义标记添加了矩形边框
- 如何为自定义jQuery函数制作数组内部的数组数据
- JS-无法将AJAX的响应分配为自定义变量
- 为自定义内容中的每条记录显示jquery工具提示
- 如何在JavaScript中为自定义对象创建带有参数的方法
- 使用jQuery将光标更改为自定义图像