0
私はGoogleマップにinfoboxesプラグインを使用しています。私はこれらの作業がうまくいっています - 人が地図上のあるポイントをクリックすると、情報ボックスが問題なくポップアップします。ただし、別のマーカーが選択されると、ポップアップが消えるようにしたいと思います。新しい地図がクリックされたときに消える複数の情報ボックスをGoogle Mapsに作成しようとしています
私はこの問題にアプローチする方法の例をいくつか見つけましたが、これらのソリューションを自分のコードに統合するのが難しいです。私はかなりjavascriptに新しいと私は実際にいくつかの指導を使用することができます!
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Smelting</title>
<link
href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css"
rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&sfgdata=+sfgRmluamFuX1R5cGU9amF2YV9zY3JpcHQmRmluamFuX0xhbmc9dGV4dC9qYXZhc2NyaXB0+a"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/src/infobox.js"></script>
<style type="text/css">
.infoBox h2
{
font-size: 22px;
margin: 0 0 4px 2px;
}
.infoBox p
{
font-size: 14px;
margin: 0 2px;
}
.infoBox a
{
color:White;
text-decoration:none;
}
.infoBox p.sitenumber
{
font-size: 12px;
margin: 7px 0 2px 2px;
}
.siteButton
{
background-color: #465b66;
padding: 7px 10px;
text-align: center;
margin-top: 15px;
}
</style>
<script type="text/javascript">
function initialize() {
// Creating the map
var map = new google.maps.Map(document.getElementById("map_canvas"), {
mapTypeId: google.maps.MapTypeId.ROADMAP,
streetViewControl: false
});
// Styling the map
var styledMap = [{
featureType: "all",
stylers: [{
saturation: -80
}]
}, {
featureType: "road.arterial",
elementType: "geometry",
stylers: [{
hue: "#00ffee"
}, {
saturation: 50
}]
}, {
featureType: "poi.business",
elementType: "labels",
stylers: [{
visibility: "off"
}]
}
];
//Calling the map styles
map.setOptions({
styles: styledMap
});
// List of images
var images = [ 'images/icon1.png', 'images/icon2.png','images/icon3.png'];
loadMarkers();
// Zoom and center the map to fit the markers
var bounds = new google.maps.LatLngBounds();
// Create the markers
function addMarker(data, images) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(data.lat, data.long),
map: map,
title: data.name,
icon: images[--data["dot-type"]]
});
var myOptions = {
content: boxTitle
, boxStyle: {
color: "#fff"
, textAlign: "left"
, fontSize: "12pt"
, width: "250px"
, height: "230px"
, padding: "10px"
, fontFamily: "Arial"
, fontStyle: "bold"
, background : "transparent url('images/sampleback.png') no-repeat 0 0",
}
, disableAutoPan: true
, pixelOffset: new google.maps.Size(-90,-280)
, position: new google.maps.LatLng(data.lat, data.long)
, closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif"
, isHidden: false
, pane: "floatPane"
};
var ib = new InfoBox(myOptions);
var boxTitle = document.createElement("div");
var boxNum = data.id;
var boxTitle= data.name;
var boxAddress = data.street;
var boxCity = data.city;
var boxSt = data.st;
var boxZip = data.zip;
var boxText = document.createElement("div");
boxText.content = "<p class='sitenumber'>" + "Site #" + boxNum + "</p>" +"<h2>"+boxTitle+"</h2>" + "<p>" + boxAddress + "</p>"+ "<p>" + boxCity + ", " + boxSt + " " + boxZip +"</p>" + "<b>" + "<a href='#'>" + "<div class= 'siteButton'>" + "VIEW THIS SITE DETAIL" + "</div>" + "</a>";
google.maps.event.addListener(marker, "click", function (event) {
ib.setContent(boxText.content);
ib.open(map, marker);
});
bounds.extend(new google.maps.LatLng(data.lat, data.long));
map.fitBounds(bounds);
}
function loadMarkers() {
var siteUrl = "data/main.js";
$.ajax({
dataType: "json",
url: siteUrl,
success: load
});
function load(data) {
for (index in data) addMarker(data[index], images);
}
};
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas"></div>
</body>
ロットオフエラーが発生しません。 – binoy