Поскольку API для Google Maps версии 3 все еще развивается, я не хочу использовать какие-либо плагины.Мой оригинальный скрипт для версии 2 отлично работает для отображения пользовательского информационного окна, которое появляется при нажатии на маркер и исчезает при нажатии на область карты.Новый API представляет объект google.maps.OverlayView, который мне сложно использовать в сочетании с JQuery.Пример моего исходного кода показан ниже:
function Results(json) {
var L = json.output.length;
var website = json.web;
if (L > 0) {
for(i=0; i<L; i++) {
var listing = json.output[i];
addLocation(listing, website);
}
}
}
function addLocation(A, B) {
var point = new GLatLng(A.lat, A.lng);
var icon = new GIcon(baseIcon);
icon.image = 'images/' + A.mks + '.png';
var M = new GMarker(point, icon);
map.addOverlay(M);
GEvent.addListener(M, 'click', function(){
showInfo(M, '<A href=\"site.php?ID=' + A.id + '\">' + A.name + '</A>');
});
GEvent.addListener(map, 'click', function(){
hideInfo();
});
showResult(A, B);
}
function showInfo(M, text){
var markerOffset = map.fromLatLngToDivPixel(M.getPoint());
$('#info').appendTo(map.getPane(G_MAP_FLOAT_SHADOW_PANE));
$('#info').show()
.css({ top:markerOffset.y, left:markerOffset.x })
.html(text);
}
function hideInfo(){
$('#info').hide();
}
var Q = 'search.php'; // an array is output in Json format
$.getJSON(Q, Results);
Самый близкий пример, который я могу найти: http://www.tdmarketing.co.nz/blog/2011/03/09/create-marker-with-custom-labels-in-google-maps-api-v3/, который все еще довольно далек от того, что я имею в виду.
Я не уверен, есть ли у кого-нибудь идея преобразовать вышеперечисленное, чтобы оно могло работать с API версии 3.