0
InfoBubble here을 사용하여 성공적인 작업 GM 프로토 타입을 작성했습니다.Google지도 InfoBubble 창이 닫히거나 다시지도가 나타나지 않습니다.
InfoBubble 창을 열 때마다 지도를 다시 작성해야합니다.
이google.maps.event.addListener(infoBubble, "closeclick", function()
둘째, 왜 로스 앤젤레스 (미국 서부 해안, LA)는 InfoBubble 또한 가장 최근 닫히지 않습니다 : 각 InfoBubble을 닫는에
맵 recenters 나는 [등 라인 (238)]를 호출하기 때문에 InfoBubble 창이 다른 모든 것과 마찬가지로 열려 있습니다.
미리 제안 해 주셔서 감사합니다. 나는 그것이 단순해야만한다는 것을 압니다. 그러나 시간과 시간을 소비하고 S/O도 검색했습니다!
자바 스크립트 :
$(document).ready(function() { initialize(); });
var myLatlng = new google.maps.LatLng(51.30, 0.7);
function initialize() {
google.maps.Map.prototype.setCenterWithOffset = function(LatLng, offsetX, offsetY) {
var map = this;
var ov = new google.maps.OverlayView();
ov.onAdd = function() {
var proj = this.getProjection();
var aPoint = proj.fromLatLngToContainerPixel(LatLng);
aPoint.x = aPoint.x+offsetX;
aPoint.y = aPoint.y+offsetY;
map.setCenter(proj.fromContainerPixelToLatLng(aPoint));
};
ov.draw = function() {};
ov.setMap(this);
};
var centerMap = new google.maps.LatLng(51.30, 0.7);
var mapOptions = {
zoom: 2,
disableDefaultUI: true,
scrollwheel: false,
navigationControl: false,
mapTypeControl: false,
scaleControl: false,
draggable: false,
center: centerMap,
};
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
map.setCenterWithOffset(myLatlng, 50, 225);
setMarkers(map, sites);
google.maps.event.addListener(infoBubble, "closeclick", function() {
map.setCenterWithOffset(myLatlng, 50, 225);
});
google.maps.event.addListener(infoBubbleLA, "closeclick", function() {
map.setCenterWithOffset(myLatlng, 50, 225);
});
};
var infoBubble = new InfoBubble({
maxWidth: 400,
});
var infoBubbleLA = new InfoBubble({
maxWidth: 400,
});
// locationstrings start
var losangeles1 = 'losangeles1';
var losangeles2 = 'losangeles2';
var losangeles3 = 'losangeles3';
var losangeles4 = 'losangeles4';
var losangelescontentString ='losangelescontentString';
var portonovocontentstring ='Porto Novo';
var shackletoncontentstring = 'Shackleton';
var florencecontentstring = 'Florence';
var buenosairescontentstring = 'Buenos Aires';
var jodhpurcontentstring = 'Jodhpur';
var mtsinaicontentstring = 'Mt Sainai';
var neworleanscontentstring = 'New Orleans';
var pariscontentstring='Paris';
// locationstrings end
infoBubbleLA.addTab('Electronic Cataloguing Initiative', losangeles1);
infoBubbleLA.addTab('Getty Leadership Institute at Claremont Graduate University', losangeles2);
infoBubbleLA.addTab('Tab 3', losangeles3);
infoBubbleLA.addTab('Preserve L.A.', losangeles4);
var sites = [
// 'Title', lat, long, contentstring
['Los Angeles', 34.054082,-118.24261, losangelescontentString],
['Porto Novo', 6.501411,2.604275, portonovocontentstring],
['Shackleton', -77.550000, 166.150000, shackletoncontentstring],
['Florence', 43.773046,11.255901, florencecontentstring],
['Buenos Aires', -34.578528,-58.526273, buenosairescontentstring],
['Jodhpur', 27.199507,73.73826, jodhpurcontentstring],
['Mt Sinai', 28.555972,33.975048, mtsinaicontentstring],
['New Orleans', 29.984676,-90.063171, neworleanscontentstring],
['Paris', 48.821799,2.404933, pariscontentstring]
];
var iconBase = 'http://gettylabs.org/visit/FoundationMap/images/';
function setMarkers(map, markers) {
for (var i = 0; i < markers.length; i++) {
var sites = markers[i];
var siteLatLng = new google.maps.LatLng(sites[1], sites[2]);
var marker = new google.maps.Marker({
icon: iconBase + 'bullet.png',
title: sites[0],
position: siteLatLng,
html: sites[3],
map: map
});
google.maps.event.addListener(marker, "click", function() {
map.setCenterWithOffset(myLatlng, 50, 25);
if (this.html == losangelescontentString) {
infoBubbleLA.setContent(this.html);
infoBubbleLA.open(map,this);
} else {
infoBubble.setContent(this.html);
infoBubble.open(map,this);
}
});
};
};
감사합니다, 지오 우편을! 이중 거품을 고쳤다. 그러나지도는 여전히 중심이 아닙니다. 어떤 아이디어를 주셔서 감사합니다 :-) – marksealey
코드가 작동합니다. [fiddle] (http://jsfiddle.net/1ejxk4gy/embedded/result/) – geocodezip
geocodezip, Thanks! 하지만 내가 사용해야하는 확대/축소 레벨 (http://gettylabs.org/visit/FoundationMap/IBnotcloseNotCenter.html) 오른쪽 하단의 마커/창 (남극, Shackleton 's Hut)은이 방법으로지도에서 사라집니다. 나는 매번 창을 닫을 때와 같은 방식으로 전체지도를 다시 지우는 새 창이 열리길 원합니다. – marksealey