У меня есть 3 маркера. Можно ли загрузить example1.html в div1 при нажатии на маркер1? и example2.html в Div1 для MARKER2 ..Google Maps API 3
вот мой модифицированный демонстрационная от @ kjy112 http://jsfiddle.net/rD8U6/198/
У меня есть 3 маркера. Можно ли загрузить example1.html в div1 при нажатии на маркер1? и example2.html в Div1 для MARKER2 ..Google Maps API 3
вот мой модифицированный демонстрационная от @ kjy112 http://jsfiddle.net/rD8U6/198/
Что я делаю, это добавить iframe внутри вашего div1. При этом я заменил третий элемент вашего массива myPoints на имя html-файла или гиперссылки, которую вы хотите. (Обратите внимание, что вы можете столкнуться с «запретом отображения» в параметрах x-frame, я получаю это с помощью google.com и не могу разместить его в div/iframe). Он должен работать внутри вашего домена.
Сделайте два (простых) статических htmls, называемых static_a.html и static_b.html, чтобы проверить приведенный ниже код. Средний маркер должен перейти на главную страницу Нью-Йоркского университета.
С учетом ссылки для каждого маркера div изменяется косвенно, начиная с изменения в src iframe с $("#myiframe").attr('src', html);
в прослушивателе кликов маркера.
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html, body {
margin:0px;
padding:0px;
height:100%;
}
#map_canvas {
width:500px;
height:100%;
}
#div1 {
background-color:#0FC;
width:300px;
height:100%;
position:absolute;
right:0px;
top:0px;
display:none;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var map = null;
var markerArray = []; //create a global array to store markers
var myPoints = [[43.65654, -79.90138, 'static_a.html'],
[43.91892, -78.89231, 'static_b.html'],
[43.82589, -79.10040, 'http://www.nyu.edu']]; //create global array to store points
function initialize() {
var myOptions = {
zoom: 8,
center: new google.maps.LatLng(43.907787, -79.359741),
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
},
navigationControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
google.maps.event.addListener(map, 'click', function() {
infowindow.close();
});
// Add markers to the map
// Set up markers based on the number of elements within the myPoints array
for(var i=0; i<myPoints.length; i++) {
createMarker(new google.maps.LatLng(myPoints[i][0], myPoints[i][1]), myPoints[i][2]);
}
//mc.addMarkers(markerArray , true);
}
var infowindow = new google.maps.InfoWindow({
});
function createMarker(latlng, html) {
var contentString = html;
var marker = new google.maps.Marker({
position: latlng,
map: map
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(contentString);
infowindow.open(map, marker);
map.panTo(latlng);
$("#div1").show();
$("#myiframe").attr('src', html);
});
markerArray.push(marker); //push local var marker into global array
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas"></div>
<div id="div1"><iframe id="myiframe" style="width: 100%; height: 100%"></iframe>
</div>
</body>
</html>
Попробуйте добавить страницу, которую вы хотите включить для каждого маркера в массиве MyPoints, как:
var myPoints = [[43.65654, -79.90138, 'ABC','exemple1.html'],[43.91892, -78.89231, 'DEF','exemple2.html'],[43.82589, -79.10040, 'GHA','mypage.html']]; //create global array to store points
Затем, когда вы MyPoints цикл:
for(var i=0; i<myPoints.length; i++){
createMarker(new google.maps.LatLng(myPoints[i][0], myPoints[i][1]), myPoints[i][2], myPoints[i][3]);
}
Затем в функции createMarker:
function createMarker(latlng, html,link) {
var contentString = html;
var marker = new google.maps.Marker({
position: latlng,
map: map,
num: link
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(contentString);
infowindow.open(map, marker);
map.panTo(latlng);
$.get(marker.num, function(data) {
$('#div1').html(data);
});
$('#div1').show();
});
markerArray.push(marker); //push local var marker into global array
}
thx dude .. он такой же, используйте .load для div или iframe .. – zippo
, но я не понимаю, что есть «в нижней части страницы», map :) – zippo
Я думаю, что это появилось, когда я хватал код jsfiddle. –