我正在用html/jsp页面主体中的Google地图做一个web动态项目。
我制作了一个函数,可以创建一个标记(lat、lng、map),并在标记的参数中使用一个特殊的image.png作为图标。
在我的地图中,我制作了两种不同的样式(地图的颜色…)“白天”和“夜晚”。
我想知道当用户点击夜间更改样式时,我如何更改标记的图标。事实上,标记的颜色不适合这种风格的地图...
我尝试用相同的名称初始化不同样式的var image=/…/…png,这样我就可以在映射代码中使用var,但它不起作用。我还试了一个if-like
if(map.mapTypeControlOptions.mapTypeIds.equals(Day)){
var image=...png
} else {
var image=...png
}...
customMapTypeIdJour<div id="map"></div>
<script>
function initMap() {
var customMapTypeNuit = new google.maps.StyledMapType([
{
"featureType": "landscape.man_made", "elementType": "geometry.fill", "stylers": [ { "color": "#2b3f57" } ]
},
// ... the style of map
{
name: 'Nuit'
}
);
var customMapTypeJour = new google.maps.StyledMapType([
// a style of map
{
name: 'Jour'
}
);
var customMapTypeIdJour = 'Jour';
var customMapTypeIdNuit = 'Nuit';
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 43.6666, lng: 1.43333},
zoom: 17,
streetViewControl: false,
zoomControl: false,
mapTypeControlOptions: {
mapTypeIds: [customMapTypeIdJour, customMapTypeIdNuit]
}
});
map.mapTypes.set(customMapTypeIdNuit, customMapTypeNuit);
map.mapTypes.set(customMapTypeIdJour, customMapTypeJour);
map.setMapTypeId(customMapTypeIdJour);
var infoWindow = new google.maps.InfoWindow({map: map});
// Try HTML5 geolocation.
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
infoWindow.setPosition(pos);
infoWindow.setContent('Vous êtes ici.');
createMarqueur(lat, lng, map); // create a special marker with a special image as icon
map.setCenter(pos);
});
} else {
// Browser doesn't support Geolocation
handleLocationError(false, infoWindow, map.getCenter());
}
}
function handleLocationError(browserHasGeolocation, infoWindow, pos) {
infoWindow.setPosition(pos);
infoWindow.setContent(browserHasGeolocation ?
'Error: The Geolocation service failed.' :
'Error: Your browser doesn\'t support geolocation.');
}
</script>
你试过使用svg图形吗?你可以很容易地改变它的外观使用javascript。
你必须使用矢量编辑器软件,如Corel Draw,Adobe Illustrator或任何其他免费程序来制作你的标记。在文本编辑器中打开结果文件,你会发现类似这样的东西。
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25000 6000">
<path d=" <!--svg path here--> ">
</svg>
您可以应用css:
svg path{fill:red} /*any color here*/
您想使用javascript更改颜色的任何更改都可以使用上述css的简单更改来完成。我希望我给了你一些如何改变标记的想法。
我开始悬赏,但最后我有了答案。根据谷歌的文档,有一个getMapTypeId()
返回MapTypeId
字符串(比如'Jour'或'Nuit'(sallt compatiriote!))。
因此,如果您持有标记列表
,您可以这样做:
google.maps.event.addListener( map, 'maptypeid_changed', function() {
if(map.getMapTypeId() == "Nuit"){
for(var i=0;i<markerList.length;i++){
markerList[i].setIcon("/resources/img/nuit.png");
}
}
else{
for(var i=0;i<markerList.length;i++){
markerList[i].setIcon("/resources/img/jour.png");
}
}
} );
我想更改Google Maps上选定的标记图标,因此我有以下代码: 在这一行,我从下面得到错误: 例外情况如下:
我有一个地图,如果用户触摸地图,我将只放置一个pin,我这样做了,但当用户想要更改pin位置时,他应该将pin拖动到新位置 当用户触摸另一个地方时,我想要的是删除之前的引脚并将新引脚放在新的地方而不拖动它。 我该怎么做?? 这是我的代码: 和MyItemizedOverlay
我可以知道一种通过Javascript改变谷歌地图标记颜色的方法吗..我是这方面的新手,任何帮助都将不胜感激,谢谢。 我使用以下代码创建标记
我试图在点击时更改标记的图标编号。我使用的是角度谷歌地图。我正在使用本地资产文件夹而不是服务API设置iNurl。 单击标记时,如何更改上述图标。
我看了其他答案,试着: 以及: 在类中,我把图像文件放在资源文件夹中,也放在与我的文件和我项目的根文件夹中,甚至在开始时包含了/符号URL字符串,但没有工作。我想知道最近有没有人尝试过并成功了?
在我的JSP中,我有一个下拉列表来列出所有可用的部门,当客户端选择一个部门时,通过AJAX,我将所有员工的列表放在下一个下拉列表中。 出于AJAX的目的,我使用 ,而不是Employment name Employer id。所以有人能告诉我如何在onchange事件中获取<code>HashMap</code>的值吗。