Javascript 单击标记而不是删除标记时,应如何创建自定义菜单
这是我到目前为止所做的代码,当我添加标记并悬停时,会出现infowindow,但它们都有相同的infowindow,我需要为每个标记更改它,第二,我想在标记的顶部创建一个自定义菜单框,在单击标记时,应该有添加信息和删除的选项,而不是单击该标记Javascript 单击标记而不是删除标记时,应如何创建自定义菜单,javascript,google-maps-api-3,google-maps-markers,Javascript,Google Maps Api 3,Google Maps Markers,这是我到目前为止所做的代码,当我添加标记并悬停时,会出现infowindow,但它们都有相同的infowindow,我需要为每个标记更改它,第二,我想在标记的顶部创建一个自定义菜单框,在单击标记时,应该有添加信息和删除的选项,而不是单击该标记 <html> <head> <title>example</title> <script src="https://maps.googleapis.com/maps/api/js?sensor=f
<html>
<head>
<title>example</title>
<script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<style type="text/css">
#map_canvas {
width: 100%;
height: 500px;
background-color: #CCC;}
#menu_bar{
width: 100%;
height: 150px;
position:absolute;
bottom:0px;
background-color:#008080;
border-top:1px solid red;}
body{
padding:0px;
margin:0px;}
</style>
<!-- google maps Scripting start -->
<script type="text/javascript">
var markers = [];
function initialize() {
var myLatlng = new google.maps.LatLng(44.5403, -78.5463);
var mapOptions = {
zoom: 4,
center: myLatlng
}
var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
google.maps.event.addListener(map, 'click', function(event) {
addMarker(event.latLng);
});
// add marker to positon
function addMarker(location) {
var marker = new google.maps.Marker({
position: location,
map: map
});
// deleting
google.maps.event.addListener(marker, 'click', function(event) {
this.setMap(null);
});
// adding info window to gMaps
var infowindow = new google.maps.InfoWindow({
content: "holdings content area"
});
google.maps.event.addListener(marker, 'mouseover', function() {
infowindow.open(map, this);
});
// assuming you also want to hide the infowindow when user mouses-out
google.maps.event.addListener(marker, 'mouseout', function() {
infowindow.close();
});
markers.push(marker);
}
// Sets the map on all markers in the array.
function setAllMap(map) {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(map);
}
}
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<!-- google maps Scripting ends -->
</head>
<body>
<div id="map_canvas"></div>
<div id="menu_bar">
</div>
</body>
</html>
例子
#地图画布{
宽度:100%;
高度:500px;
背景色:#CCC;}
#菜单栏{
宽度:100%;
高度:150像素;
位置:绝对位置;
底部:0px;
背景色:#008080;
边框顶部:1px纯红;}
身体{
填充:0px;
边距:0px;}
var标记=[];
函数初始化(){
var mylatng=newgoogle.maps.LatLng(44.5403,-78.5463);
变量映射选项={
缩放:4,
中心:myLatlng
}
var map=new google.maps.map(document.getElementById('map_canvas'),mapOptions);
google.maps.event.addListener(映射,'click',函数(事件){
添加标记(事件标记);
});
//将标记添加到位置
功能添加标记(位置){
var marker=new google.maps.marker({
位置:位置,,
地图:地图
});
//删除
google.maps.event.addListener(标记,'click',函数(事件){
此.setMap(null);
});
//向gmap添加信息窗口
var infowindow=new google.maps.infowindow({
内容:“控股内容区”
});
google.maps.event.addListener(标记'mouseover',函数(){
打开(地图,这个);
});
//假设您还希望在用户鼠标移出时隐藏信息窗口
google.maps.event.addListener(标记'mouseout',函数(){
infowindow.close();
});
标记器。推(标记器);
}
//在阵列中的所有标记上设置贴图。
函数setAllMap(映射){
对于(var i=0;i
首先在html中创建一个菜单或弹出窗口或任何您想要的内容,然后将此html复制到javascript变量中,接下来创建gMap infoWindow并将内容设置为自定义设计,最后一步将事件绑定到标记,然后打开infoWindow
var map = new google.maps.Map(document.getElementById('yourmap'), mapOptions);
var popup= '<div>Design your whatever styled popup you want</div>';
var infowindow = new google.maps.InfoWindow({
content: popup
});
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: 'ABC'
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
var-map=new google.maps.map(document.getElementById('yourmap'),mapOptions);
var popup='设计您想要的任何样式的弹出窗口';
var infowindow=new google.maps.infowindow({
内容:弹出窗口
});
var marker=new google.maps.marker({
职位:myLatlng,
地图:地图,
标题:“ABC”
});
google.maps.event.addListener(标记'click',函数(){
信息窗口。打开(地图、标记);
});
在创建时将onclick事件绑定到标记,并在GMAPAPI的onclick启动信息框中。。。