bMap - Documentation
Tips, tricks, and information about bMap
This plugin is based on the bMap object. This object is a wrapper for the Google Maps API, and is dependent on jQuery and Google Maps. Having experience with either will help you understand bMap, but is not essential - it may also help if you know some javascript.
Getting started
The first thing you need to do is grab a copy of bMap from the downloads link on the left (please respect my bandwidth and host your own copy), and upload it to your server. Then on the page where you want a map you need add the script tags that point to jQuery, Google Maps, and bMap there are many ways of doing this, but I like to use the google cached versions where possible. You will also need to obtain a google API key.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script src="http://maps.google.com/maps?file=api&v=2&key=YOUR_GOOGLE_KEY" type="text/javascript"></script> <script type="text/javascript" src="jQuery.bMap.1.2.1.js"></script>
You will then need to create a div on the page and give it an ID (that will be used later to render the map). Then create a script block in the page and write your javascript. Take a look at the examples, the HTML shown can be used as a starting point for most basic setups.
To use bMap, you need to initilise an instance of the object. There are two ways of doing this:
var map_object = new bMap({ mapCanvas: "map" });
//or the jQuery way
$('#map').bMap();
In these instances, the element with an ID of map will have a map rendered with the bMap defaults. These are the defaults:
bMap defaults
defaults = {
mapCenter: [51,0], //Two elemet array [lat,lng]
mapZoom: 1, //initial zoom, 1 is fully zoomed out
mapCanvas: "map", //div to render the map in
mapSidebar: "none", //div to render the marker sidebar
mapLayerbar: "none", //div to render the layer sidebar
mapType: G_NORMAL_MAP, //initial map type (uses Google map API constants)
loadMsg: "<h2>Loading...</h2>" //content of the AJAX loading message div
};
In addition to these defaults you can also pass the constructor a set or markers to render on the map - you can assign an array of icons (more about that later).
bMap layers
bMap makes it easy to have markers, lines and polygons on your map. These are organised as layers. To create a layer we use JSON notation to describe the layer we want. All layers share the following basic construction:
//Common layer properties: { "name": "Layer Name", //Layer name, that will be seen in the layerBar - Defaults to the layers index in the internal layer array. "type": "marker", //This will be set by bMap when you create a layer, so its not necessary to specifically set this. (marker line or polygon) "visible":"true", //This defaults to true, but if you want a layer to load hidden; set this to false "data": [] //This is an array of JSON objects, with latitude and logitude values } //Lines and Polygons also accept the following optional properties: //Line layer properties: { "weight": 50, //Line thickness "color": "#00F", //HTML colour for the line, defaults to blue "opacity": 1 //Opacity value between 0 and 1 } //Polygon layer properties: { "weight": 50, //Line thickness of perimiter "color": "#00F", //HTML colour for the polygon, defaults to blue "opacity": 0.5 //Opacity value between 0 and 1. The perimiter is solid, this is the opacity of the inside fill colour }
bMap data array
All layers require the data property. This array contains all the latitude and longitude values. Marker layer data arrays can also contain extra information for the info-window/sidebar and optionally icon.
//Polygon and Polyline data object: { "lat": 53.432817, //Latitude "lng": -10.075986 //Longitude } //Marker data object: { "lat": 53.432817, //Latitude "lng": -10.075986, //Longitude "title":"Connemara Golf Links", //Appears in sidebar, and in info-window "body": "Aillebrack, Co. Galway, Ireland", //Appears in info-window "icon": "1" //Use this to reference an icon in the array of icons passed to the constructor }
These data objects are combined into an array, using standard JSON techniques. There are three bMap functions that you pass layer objects too, and the information is drawn onto the map.
bMap layer constructor functions
There are three finctions for adding layers. One for the markers, lines and polygons. You pass in a layer object, including the data array, and the information is rendered on the map.
//layer constructor functions insertMarkers(); insertLine(); insertPolygon(); //example usage - bMap object: var map_object = new bMap({ mapCanvas: "map" }); map_object.insertLine({ "color":"#F0F", "data":[ { "lat":51.49757618329838, "lng":-0.1746654510498047 },{ "lat":51.47769451182406, "lng":-0.0009441375732421875 } ] }); //example usage - jQuery object: $('#map').bMap(); $('#map').data('bMap').insertLine({ "color":"#F0F", "data":[ { "lat":51.49757618329838, "lng":-0.1746654510498047 },{ "lat":51.47769451182406, "lng":-0.0009441375732421875 } ] });
The bMap constructor accepts a marker object as a parameter, and this is processed with the insertMarker() function. The three AJAX functions also use the layer functions internally to process the JSON data they recieve.
bMap AJAX functions
For a larger project with lots of data, or when data is stored in a database - it may be better to use the AJAX functions. There are three functions, one for each type of layer, and they use the same object structures. The functions, and their defaults are shown below:
AJAXMarkers({
serviceURL: "mapService.php", //Address of the page to request data
action: "getMarkers", //POST var action, with value getMarkers
vars: [] //An optional array of aditional values to POST to the target page
});
AJAXLine({
serviceURL: "mapService.php",
action: "getLine",
vars: []
});
AJAXPolygon({
serviceURL: "mapService.php",
action: "getPolygon",
vars: []
});
Because you can send your own POST variables to the service page, it should be possible to manage any kind of data. Your target page needs to respond with JSON that would be acceptable to the layer functions above. To help here are some ASP and PHP loops that can generate JSON for the AJAXMarkers function:
'ASP loop to generate JSON for bMap 'This example assumes you sanatise the POST vars, and make a database connection... serviceAction = Request("action") if serviceAction = "getMarkers" then mySQL = "SELECT * FROM markerTable" Set objRS = oConn.Execute(mySQL) JSONreply = "{ ""name"":""Markers"", ""type"":""marker"", ""data"" : [ " if NOT objRS.EOF then do while NOT objRS.EOF JSONreply = JSONreply + "{""lat"":"&objRS("Lat")&",""lng"":"&objRS("Lng")&", ""title"":"""&objRS("title")&""", ""icon"":"""&objRS("icon")&""", ""body"":"""&objRS("body")&"""}," objRS.movenext loop 'remove trailing comma "," that got added to the last entry above JSONreply = Mid(JSONreply,1,Len(JSONreply)-1) End IF 'finish off string, and send to the client JSONreply = JSONreply + " ] }" response.write(JSONreply) 'close the ADO objects objRS.Close Set objRS = Nothing End If
//PHP loop to generate JSON for bMap //Again: This example assumes you sanatise the POST vars, and make a database connection... $SQLquery = "SELECT * FROM markerTable"; $result = mysql_query($SQLquery); $counter = 0; //Send layer properties echo "{ ""name"":""Markers"", ""type"":""marker"", ""data"" : [ "; //Loop markers, sending to client while($row = mysql_fetch_array($result)){ if ($counter != 0) { echo "," ; } //Dealing with commas echo '{"lat":"' . $row['lat'] . '","lng":"' . $row['lng']. '","title":"' . $row['title']. '","icon":"' . $row['icon']. '","body":"' . $row['body']. '"}'; $counter++; } echo " ] }"; //finishing up, and sending to client
These are just examples, in your website you will want to protect your database from SQL injection - but that is outside the scope of this document. Please use these as a starting point. You might want to send the AJAX service page values that you can then use in your SELECT statement for instance. And you will have to open and close your own database connections.
bMap geocoder
There is a wrapper function for the google geocoder - centerAtAddress - so you can center the map at an address. You can also use the map objects setCenter function to change the map center.
$('#map').bMap();
$('#map').data('bMap').centerAtAddress('London, UK');
$('#map').data('bMap').map.setCenter( new GLatLng(51.31714872961282,-1.0788917541503906);
Comments:
Darren - 4/19/2010 2:25:31 PM
Hi jmk,
Without knowing exactly what you mean, its hard to give a single answer.
If the images are online, and your database stores the URL, then use the AJAXMarkers function to create points, and put thumbnails into the infowindows (which can then link to the images).
If you want to actually have your images appear on the surface of the map, at the LatLng, then you need the following function: fromLatLngToDivPixel()
You can find more about it in the google docs, and see a good example of its usage on Marc's blog:
http://code.google.com/apis/maps/documentation/reference.html
http://marcgrabanski.com/article/jquery-google-maps-tutorial-basics
Darren
Jeff Edsell - 4/21/2010 8:59:54 AM
Is there a way to add an event listener to the markers, so I can have the click trigger some custom function instead of the standard info window?
Thanks.
Darren - 4/21/2010 7:59:06 PM
Hi Jeff,
Good question. Currently the only way to get a custom action on a marker click is to extend the bMap object - the function where the markers are created. I have created an example to demonstrate how to do this.
I will consider making this easier in future versions.
Darren
Mike - 5/13/2010 1:00:17 AM
Excellent script, the hardest to find, but the best so far. My question is this: If I have a custom sidebar or other elements on the page, how exactly could you make those act as triggers to work exactly like your generated side bar works.
Maybe some sort of onClick? Struggling with this one.
Darren - 5/25/2010 1:39:23 PM
Hi Mike,
Glad you like the script.
My sidebar items get created at the same time as the data is passed to the bMap object (you can see this in the examples that have buttons to add layers for instance)
When the sidebar element is created and added to the list it is assigned its own click-event function, the function is created with a function-closure so that the map-marker is referenced. Some of the online examples I have seen use different approaches, but this is the one that works for bMap.
Without seeing your situation, I cant really comment. But if you are trying to invoke a marker click even from your own screen elements then its not really sensible to hand-code the click-event. If the screen-element is a list of some sort, then I would suggest tweaking the sidebar code to your needs. in bmap 1.2.1 the marker-sidebar code is on line 187
$('
GEvent.trigger(tmpThis.layerMgrArray[newIndex].data[i], 'click');
$('#'+tmpThis.mapSidebar+' div').removeClass('bSideSelect');
$(this).addClass('bSideSelect');
}).appendTo("#"+tmpThis.mapSidebar);
The GEvent.trigger is the bit that actually invokes a click on the map-marker (panning the map, and showing the info-window). The rest is CSS stuff.
I would personally try to style the sidebar to look as i wanted it, leaving its code alone - the sidebar dosnt have to be along side the map, or even look like a list!
Failing that, I would then try to tweak the bMap code to my specfic needs. However if you want to make your own elements trigger a marker-click event then you need something like:
GEvent.trigger($("map").data("bMap").layerMgrArray[0].data[0], 'click');
The bits in red are going to be specfic to your page! With closures in bMap these are automatically sorted out. The layer manager is a 0-based array of the stuff on your map. If you have onle one 'layer' of markers then this is always going to be 0, each layer has a 0-based data array - for a marker layer then each one of these is a GMarker from the google maps api, so the code above tells the first marker on the map to show an infowindow. So if your map was fairly static, then you could hand-code this javascript to trigger click events.
Darren
Dean Farrell - 6/2/2010 7:05:43 AM
Great plugin. Does it work with version 3 of the API or do I need to tweak it myself?
Thanks,
Dean
Darren - 6/4/2010 11:39:13 AM
Hi Dean,
There is a new version of bMap being tested currently. It is based on V3 of google maps, and will have some additional functionality over the latest version.
Darren
sam - 6/10/2010 4:42:49 PM
any input from user example?
wanted user to put new marker on the map.
thanks
Darren - 6/24/2010 8:28:19 AM
Hi Sam,
When making bMap I have tried to make the plugin independent of the server-side database the data comes from. So it was not tied to one system or setup.
How to create a database, manage forms and process user input is outside the scope of this document. But once you can do these things in an ordinary scenario, then extending you setup to manage markers only really requires the addition of the LatLng values used on the map.
I can see two easy ways of getting the LatLng values. The first would be to let the user click on the map where they want the marker. You can bind an event to the map, that gets fired when the user clicks the map. You can then process the data into your database. The google example has been adapted for bMap:
var MapVar = $("#map").data("bMap").map;
GEvent.addListener(MapVar,"click", function(overlay,latlng) {
if (latlng) {
MapVar.openInfoWindow(latlng, "You Clicked: "+latlng);
}
});
(source: http://code.google.com/apis/ajax/playground/#event_arguments )
Another option is to request an address from the user, and use the google client geo-coder to get the latlng of the address. Darren
Khemraj - 7/4/2010 1:01:11 PM
Very impressive and useful work.
What about the possibility to load a KML overlay from a file or on the fly? (consider the KML overlay as Thematic layer).
Thanks and regards
Khemraj
Darren Dignam - 7/6/2010 7:12:30 AM
Hi,
I am currently working on a new bMap. There are a couple of niggles in 1.2.1 that I am wrapping up, and some extras have been added.
If you have any suggestions then please let me know!
The next version will be the last to use the V2 of the google API, and I will then finish testing the V3 API bMap - ready for release. I have attempted to keep the bMap core as lightweight as possible, while hopefully making customisation as easy as possible too. So feedback please as to how this shold be handled in future?
For instance, adapting Example 11 to be a KML layer, rather than an image layer would be fairly straight forward, and I will make an example soon. But as for including the KML layer and the image layer into the final release of bMap when most people may not need that functionality - I am still undecided!
So comment here, or drop me an email of your thoughts! If you use bMap in a live website, then I would also like to hear your feedback.
Thanks everyone
Darren
manakmichal - 7/20/2010 7:15:12 AM
Hi,
bMap is very nice jQuery plugin. I've made my personal update and it works great. But i would like to know how to trigger any event after closing info window.
I know that it works in GEvent with closeInfoWindow() but i don't know where register my function with a piece of source. Can i guess that it will be something like this?
GEvent.trigger(tmpThis.layerMgrArray[newIndex], 'click', function(){ // my events; });
It would be interesting, i am trying to fix sideBar - when you close info window, it would removeClass from divs.
manakmichal - 7/20/2010 7:29:38 AM
because ...
GEvent.addListener(tmpThis.layerMgrArray[newIndex].data[i], "click", function(){
tmpThis.layerMgrArray[newIndex].data[i].openInfoWindowHtml(html, { onCloseFn: alert("closed")});
$('
manakmichal - 7/20/2010 7:29:50 AM
because ...
GEvent.addListener(tmpThis.layerMgrArray[newIndex].data[i], "click", function(){
tmpThis.layerMgrArray[newIndex].data[i].openInfoWindowHtml(html, { onCloseFn: alert("closed")});
$('
manakmichal - 7/20/2010 7:33:31 AM
GEvent.addListener(tmpThis.layerMgrArray[newIndex].data[i],"infowindowclose", function() {
alert("closed");
});
oh it was simple lol, sorry that i am spamming to much.
ceres - 8/6/2010 2:36:35 PM
Thanks for this great plugin. It is very close to solving my needs in one well organized set of code.
In your next version I would love to be able to read markers or data into the map from some sort of external file. Be this XML, KML, JSON it would be a really nice feature addition to allow for ease of use and manageability. It is fine to put 30 markers in the js code, but another thing to add 300 markers to it... unless there is a way that I am missing?
Also, I am wondering if there is a way to add extra data to a markers other than the location, title, and body. KML has generic data fields to allow someone to put anything they want into there. I have a specific need to have a "category" data field right now for example, but no where to really put it.
Darren - 8/7/2010 3:51:17 AM
With bMap, if you want to do a google maps API function, like add a KML overlay, then the map object is available to you like so:
$('#map_div').data('bMap').map
so you can follow the example at google here, to get an idea how to use the google KML overlay functions:
http://code.google.com/apis/ajax/playground/#geoxml_kml
but map.addOverlay(geoXml);
becomes:
$('#map_div').data('bMap').map.addOverlay(geoXml);
Example 8 can help you here too as it uses API calls too.
http://www.blocsoft.com/bmap/example8.asp
If you really want to levrage the layer manager of bMap, so that you can build a layer-bar to show/hide the KML data, then you will need to extend the bMap plugin.
http://www.blocsoft.com/bmap/example11.asp
Example 11 does exactly this to add an image overlay, and the same principle would apply for KML. if you do attempt this, let me know how you get on!
I am currently working on the new version of bMap, but I will certainly look into this. One thing I think would be interesting, is to add markers to the marker-sidebar, and layers to the layer-bar from the KML file, but that is a more complicated task that i would only undertake if it was heavily requested.
Webrunner - 8/18/2010 10:47:27 PM
Hello, how can I give Gsize a value through bMap ?
This because my map comes at first hidden on my site...
Webrunner - 8/19/2010 7:05:01 AM
As Gsize is necessary when you call a hidden Gmap (without it, the div is considered empty), I did this :
I just modified line 91 in jQuery.bMap.1.2.3.js to this.map = new GMap2(document.getElementById(options.mapCanvas),{ size: new GSize(500,500) });
Now I can have my map div hidden at start without issues... As I'm not a js ninja, can you add Gsize in bMap options ?
keith - 9/21/2010 11:04:36 AM
Is it possible to have an html link (on the same page, but not in the sidebar) to open a marker?
Darren - 9/24/2010 1:40:56 AM
Hi,
This question is cropping up a lot, and the answer is in the code, and in the google documentation.
To invoke the maker click even in V2 of the google API you use the following function:
The method depends on the version of the maps API in qusetion, but in V2 the google function you need is:
GEvent.trigger()
you need to pass a reference to the marker in question. bMap makes the sidebar in code at the time the amrker is created so it has a reference - if you make your own link you will have to manually figure out what that is. the reference will be something like:
GEvent.trigger( $('map').data('bMap').layerMgrArray[0].data[0] )
Darren
Tonttu - 10/5/2010 2:55:06 AM
Info bubbles have a useless horizontal scroll bar in V3. Googling for the problem will reveal it is common.
See for example:
http://groups.google.com/group/google-maps-js-api-v3/browse_thread/thread/9e96e44302477a84/12cfe4c11387212b
How could this be fixed when using bMap?
Tonttu - 10/5/2010 4:56:45 AM
All special characters show up as garbage. What to do?
WallTearer - 10/14/2010 9:01:39 AM
When using jQuery.bMap.1.3.js, plugin crashes and Firebug returns: "google.maps.MapTypeId is undefined"
So I had to return to v1.2.3
Anyway, thanks for the plugin
Tonttu - 10/14/2010 12:52:08 PM
WallTearer: you have to use the V3 api like maps.google.com/maps/api/js?sensor=false
Tonttu - 10/14/2010 12:53:31 PM
Argh, post cut off by et-sign..
So after false: (et-sign)key=
It's different from V2.
Darren - 10/18/2010 8:27:00 AM
@Tonttu:
As you have pointed out in your own question, there is a known problem with infoWindows and the V3 API. I am reluctant to put a quick-fix into bMap as it may break if google address the problem from their side of things. Perhaps follow some of the work-arounds mentioned in the post you link too. If you wanted too; you could edit the insertMarkers function - putting a wrapper div around the infoWindow contents.
Also:
What are the _special chars_ that are appearing as garbage? Can you post a link to an example?
@WallTearer:
It sounds like you have tried to change the map-type in the constructor. The V3 API uses different constants for the map-types, for instance
G_NORMAL_MAP
has become
google.maps.MapTypeId.ROADMAP
in the V3 API. Google those constants and you can find out more.
Darren
Tonttu - 10/29/2010 4:31:45 AM
Darren: did you look at the page I emailed you yet? The names with special characters are mainly at the bottom of the list, like México.
Darren - 10/31/2010 3:41:58 AM
Hi,
I had a quick look during the week. Not 100 sure whats going on. You might need to replace the special chars with the HTML Character Entity for that letter - there is a list here:
http://www.intuitive.com/coolweb/entities.html
http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references
You might have to use a server-side script to do the conversion. The other option is to modify the insertMarkers code using the javascript encodeURIcomponent function to deal with the special characters:
http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp
Tonttu - 11/2/2010 8:23:23 AM
I tried the manual replace earlier, but it didn't work. Server-side scripting is not an option for me, unfortunately. But if it can be done in JS, it's fine. What exactly should I replace in the code? Thank you for the troubleshooting help.
Darren - 11/3/2010 4:25:42 PM
Hi,
The link you provided in the email is to a huge page, and it makes it hard to do debugging. I have looked, and it seems the client is correctly processing the characters being delivered - so the encoding might be wrong. I have gone into more detail in my reply email - but if you are not doing server-side scripting to produce the data that is used for the map, then why can you not simply do a find/replace on the data in your static page, only deliver HTML-character entities to the client, and then you avoid any chance of the special characters being mis-interpreted in the first place.
Good luck with your site, I hope you are doing this for eco-tourism and not whale hunting!!!
Darren
Enon Avital - 12/6/2010 5:03:11 PM
I'm able to pass in the address variable to center map on address, but it doesn't insert a marker. Any ideas?
$("
Enon Avital - 12/6/2010 5:04:14 PM
Code got cut off:
.data('bMap').insertMarkers({"data":[{"address":"641 West Englewood Ave. Teaneck, NJ USA 07666","title":"B’Nai Yeshurun Congregation","body":"641 West Englewood Ave. Teaneck, NJ USA 07666"}]})
Darren - 12/7/2010 8:58:21 AM
Hello,
None of the marker functions will geo-code an address. You will need to make this yourself. In other comments on this site I have stated the reasoning.
Darren
RC Roeder - 12/17/2010 10:50:20 AM
Can you draw a line with an arrow head?
Luciano - 3/1/2011 7:58:53 AM
I modified the function centerAtAddress() by adding the following code:
/*
* addr : the address
* tit : the title
* desc : the description
* lnk : the url (optional)
* img : the url of an image
* icon : the url of an icon
*/
bMap.prototype.centerAtAddress = function(addr,tit,desc,lnk,img,icon){
var tmpThis = this;
this.geoCoder.geocode({'address': addr}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
tmpThis.map.setCenter(results[0].geometry.location);
var contentString = img src= img height=36 style=padding:1px;border:1px solid
Darren - 3/1/2011 8:02:16 AM
The new version of bMap 1.3.1 now supports custom Marker icons. Check out the example!
Matthieu - 3/2/2011 2:39:26 AM
Thanks for this great plugin. I'm looking for a way to auto center the map fo fit all the marker I dynamicly set via ajax.
I suppose I can easyly calculate the center, but what about the zoom ?
The google map api has the fitBounds function which set the correct zoom for a list of marker. Is there a way I could use it using bmap ?
Thanks.
Matthieu - 3/2/2011 3:47:59 AM
RTFM !! : ) the answser is in the examples :
The google object is available to you here: $(element).data('bMap').map....
[code]
var map = $('
Matthieu - 3/2/2011 3:49:20 AM
It would be nice to have code-support in the comments...
var map = $('*gmap_' parent).data('bMap').map;
$.getJSON("/tournees/getCenterCoord/" tId[1], function(data) {
map.setCenter(new google.maps.LatLng(
((data.maxlat data.minlat) / 2.0),
((data.maxlon data.minlon) / 2.0)
));
map.fitBounds(new google.maps.LatLngBounds(
//bottom left
new google.maps.LatLng(data.minlat, data.minlon),
//top right
new google.maps.LatLng(data.maxlat, data.maxlon)
));
});
Anton - 3/21/2011 8:39:31 AM
iconsize, iconanchor, infowindowanchor - ???
new_in_bmap - 4/6/2011 9:11:20 AM
is there a way how to clear all the current markers? i use ajax to display markers in every x seconds. but, what happen it duplicate markers.
Darren - 4/7/2011 5:17:29 AM
Check out example 3, there is a "Delete all" button that clears everything of the map.
Otherwise you will need to implement the feature you require
Darren
Darren - 4/7/2011 4:42:20 PM
in the bmap code find this function:
bMap.prototype.removeAllLayers = function()
in this function there is a loop that scans all layers on the map:
for(i=0, j=this.layerMgrArray.length; i < j; i ){
in this loop there is a section for deleting the markers from a markers layer:
if (this.layerMgrArray[i].type=="marker"){
for(i2=0, j2=this.layerMgrArray[i].data.length; i2 < j2; i2 ){
this.layerMgrArray[i].data[i2].setMap(null);
}
this.infoWindow.close();
}
you could create your own function starting from this code; that given a set of latlng removes any previous markers from that spot
Darren
Antony - 4/14/2011 5:28:09 AM
Hi,
Is there a way i can get gbound to work in bmap, I need to set the zoom level to a set number of markers viewable within the map.
Thanks
imadnov - 6/26/2011 11:44:24 PM
Hi there
Why my markers are not visible if i have a full text body (info window) .. thx in advance
Karen - 8/23/2011 4:09:49 AM
It is possible to have html mark up in the info window? I was looking to have a hyperlink in there. Thanks.
Muhaimin - 10/18/2011 11:14:07 PM
Hi, i have a problem with info window when browsing using iPad or iPhone.. there is no scroll bar in the info window. Does anybody having experience the same thing... i can't the solution everywhere
Muhaimin - 10/18/2011 11:16:15 PM
Hi, i have a problem with info window when browsing using iPad or iPhone.. there is no scroll bar in the info window. Does anybody having experience the same thing... i can't the solution everywhere
gociak - 12/14/2011 4:23:37 AM
Hi there. Is there a way to add hyperlink to info box and styling this box using css?
Farrukh Ayyaz - 12/14/2011 3:17:52 PM
Hi, i have a problem with event 'bounds_changed', when it loads the markers it also populate the side bar, but what if i would just update the sidebar with the markers within maps bounds i.e visible markers to display, is there any way.
Christian Heyn, DK - 12/23/2011 10:59:37 AM
Hi - Super good map. Is it possible to change mapZoom for each click in sidebar? 'Se house' -> mapZoom = 16, 'Se town' -> mapZoom =12, 'Se country' -> mapZoom = 8 etc.

jmk - 4/17/2010 12:30:59 PM
Hi,
Is there a way to load geotagged photos from a db directly to a googlemap?
Thanks,
jmk