点击Jquery更改谷歌地图标记
Change Google Map marker on Jquery click
我正试图通过单击div并使用jquery来更改GoogleMap标记图标。但它似乎不起作用,标记图标并没有改变。我分配了一个包含图像路径的变量,但问题是,如果jquery更改了它,它将留在jquery函数内部,不会传递回全局值。这是我的代码:
JS部分
$(document).ready(function() {
$('#hurricanes').click(function (e){
iconic=jQuery(this).attr('hurr.png');
initMap();
});
$('#earthquakes').click(function (e){
iconic=jQuery(this).attr('durr.png');
initMap();
});
});
var iconBase = 'img/';
var iconic;
function createMarker(latlng, name, address1, address2, postalCode) {
var marker = new google.maps.Marker({
map: map,
position: latlng,
title: name,
icon: iconBase + iconic
});
}
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {
lat: -0.397,
lng: 10.644
},
zoom: 2,
mapTypeId: google.maps.MapTypeId.TERRAIN,
disableDefaultUI: true
});
displayMarkers();
}
和HTML按钮:
<div id="hurricanes" class="choices">HURRICANES</div>
<div id="earthquakes" class="choices">EARTHQUAKES</div>
您应该在更改标记后使用JavaScript重新初始化映射。查看API参考资料,了解所有选项:https://developers.google.com/maps/documentation/javascript/3.exp/reference
虽然我不太确定你到底要做什么,但你也可以删除特定坐标中的标记,然后用新的标记图标添加新的标记。
我通过重新初始化两个函数找到了解决方案:
$(document).ready(function() {
$('#hurricanes').click(function (e){
iconic='hurr.png';
createMarker();
initMap();
console.log(iconic);
});
$('#earthquakes').click(function (e){
iconic='durr.png';
createMarker();
initMap();
console.log(iconic);
});
});
相关文章:
- 如何更改角度谷歌地图上的集群图标
- 谷歌地图API-显示具有不同图标的标记
- 谷歌地图-更改图层图标大小
- 在地图加载/页面加载时,我想将地图设置为当前地理位置,但不想在地图上显示定位图标
- 将图标作为参数传递不会;t工作-谷歌地图
- 谷歌地图隐藏手图标
- 从谷歌地图信息窗口中删除关闭图标
- 在javascript中设置谷歌地图标记图标属性
- 我是否可以在单击特定图标时更改地图标记图标,然后在单击另一个图标时切换,等等
- 我如何才能在某些条件下更改c#中谷歌地图标记的图标
- 使用HTML元素代替gmap3的地图标记图标
- 使用jQuery下拉菜单更改谷歌地图图标
- 使用SVG文件动态修改谷歌地图图标
- 在Javascript中使用相对路径设置谷歌地图图标
- 使谷歌地图图标图像更小
- 自定义谷歌地图图标如果值>=1
- 谷歌地图图标赢得't显示
- 将自定义参数添加到谷歌地图图标中
- 使用精灵自定义谷歌地图图标
- 谷歌地图图标颜色