googlemap
by bighostkim
HTML
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"></script>
<script>
var googlemap = { // designed for 1 map for a page
map : null,
markers : [],
options : {
zoom : 15,
mapTypeId: google.maps.MapTypeId.ROADMAP
},
init: function(el, options) {
el = el || console.log("Invalid map container given");
var elPos = $(el).css('position')=='static' ? 'relative' : $(el).css('position')
this.mapOrgCss = {
position: elPos,
width:$(el).width(),
height:$(el).height(),
top: $(el).css('top'),
left: $(el).offset().left
};
options = options || this.options;
this.map = new google.maps.Map(el, options);
this.addFullscreenControl();
return this.map;
},
showLL : function(lat,lng) { this.resetMarkers().addMarker({lat:lat,lng:lng}); },
showAddress : function(address) { this.resetMarkers().addMarker({address:address}); },
resetMarkers : function() {
while( this.markers[0] ) {
this.markers[0].setMap(null);
this.markers.splice(0, 1);
}
return this;
},
addMarker : function(attr) { this.addMarkers([attr]) },
addMarkers : function(attributes) {
var infoWindow = new google.maps.InfoWindow();
var geocoder = new google.maps.Geocoder();
var addOne = function(latlng, attr) {
var marker = new google.maps.Marker({ position: latlng, map: googlemap.map });
marker.contentHtml = attr.contentHtml || '<b>Foo</b>';
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent( marker.contentHtml );
infoWindow.open(marker.map, marker);
});
googlemap.map.setCenter(latlng);
googlemap.markers.push(marker);
};
for (var i=0; i< attributes.length; i++) {
var attr = attributes[i];
var latlng;
if (attr.lat && attr.lng) {
latlng = new google.maps.LatLng(attr.lat, attr.lng);
addOne(latlng, attr);
} else if...