У меня есть простой скрипт, который добавляет маркер на карту, когда вы нажимаете кнопку, используя мобильный jQuery и API Google Maps v3. Я хочу добавить к этому маркеру базовое информационное окно, чтобы при нажатии на него отображалось «Hello World».
Кажется, это должно быть очень просто, но я не могу правильно понять синтаксис. Я добавляю такие маркеры
$('#map_canvas').gmap('addMarker', { 'position': chicago } );
и я не могу найти хороших примеров, когда вы также настраиваете информационное окно, когда вы также настраиваете маркер.
Вот мой код. Если сохранять в каталог jquery-ui-map-3.0-rc\demos\
, то все пути будут правильными. Когда вы нажимаете «Добавить еще несколько маркеров», на карту добавляется маркер в chicago
месте. Я хочу иметь возможность щелкнуть по этому маркеру и открыть информационное окно с надписью «Hello World!».
<!doctype html>
<html lang="en">
<head>
<title>jQuery mobile with Google maps - Google maps jQuery plugin</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?v=3&sensor=false&language=en"> </script>
<script type="text/javascript" src="http://jquery-ui-map.googlecode.com/svn/trunk/ui/min/jquery.ui.map.min.js"></script>
<script type="text/javascript">
var chicago = new google.maps.LatLng(41.850033,-87.6500523);
var mobileDemo = { 'center': '41,-87', 'zoom': 7 };
var cityList = [];
function initialize()
{
$('#map_canvas').gmap({ 'center': mobileDemo.center, 'zoom': mobileDemo.zoom, 'disableDefaultUI':false });
}
$(document).ready(function()
{
initialize();
$('.add-markers').click(function() {
$('#map_canvas').gmap('addMarker', { 'position': chicago } );
});
});
</script>
</head>
<body>
<div id="basic-map" data-role="page">
<div data-role="header">
<h1><a data-ajax="false" href="/">jQuery mobile with Google maps v3</a> examples</h1>
<a data-rel="back">Back</a>
</div>
<div data-role="content">
<div class="ui-bar-c ui-corner-all ui-shadow" style="padding:1em;">
<div id="map_canvas" style="height:350px;"></div>
</div>
<a href="#" class="add-markers" data-role="button" data-theme="b">Add Some More Markers</a>
</div>
</div>
</body>
</html>
Если я изменю код внутри $(document).ready(function()){}
на следующий, маркер больше не будет отображаться.
$(document).ready(function()
{
initialize();
$('.add-markers').click(function() {
//$('#map_canvas').gmap('addMarker', { 'position': chicago, 'content': "Hello World!"} );
$('#map_canvas').gmap({'callback': function() {
var self = this;
self.addMarker({'position': chicago }).click(function() {
self.openInfoWindow({ 'content': 'Hello World!' }, this);
});
}});
});
});