I've got some Javascript/HTML code which displays a variable number of maps dependent on what the user selects.
I've worked how to dynamically create multiple maps on a page - that's well documented.
However, what I'm not so sure on is... how can I safely destroy a map after it's been created - normally I just leave this to GUnload() to sort out.
Thanks for any help!
Unfortunately the Google Maps API does not yet provide a documented method to GUnload() a single map.
There is an open Issue #772 for this feature on the Google Maps API Issue Tracker. On May 24 2009 it was marked as Acknowledged, but it remains open to this day.
In the first comment of that issue, a Google Maps team member confirmed that a possible "partial" workaround at the moment is to call:
map_to_delete.clearOverlays();
GEvent.clearInstanceListeners(map_to_delete);
Related
I have an HTML (phonegap) application that uses Google Maps API to display a map with markers. I want this app to be used offline. I know that Google Maps tiles can't be used offline (because of its license). However, what I want to do is use the map interface without the tiles.
When online -> tiles and markers displayed.
When offline -> only markers displayed.
However, the js loading of Google maps is complex, and I haven't managed to cache it.
Thanks.
Caching google maps javascript is not allowed, that's because their payment system is based on how many times their javascript API are loaded by the users. One page refresh is equal to one google maps API call, and depending what kind of contract you made you just lost -1 from the total amount of API requests you have purchased.
How is Google Maps API for Business usage tracked and reported?
A single load of the Google Maps JavaScript API into a page. The
JavaScript API is reloaded every time a page that uses the API is
reloaded. User interactions with the map (eg. panning, zooming,
changing map types) do not generate more page views. Note however that
a page view is generated if the API is loaded into the page even if
the API is not then used to display a map.
See https://developers.google.com/maps/documentation/business/faq#pageview
You could, of course contact google and try to ask some tailored business solution for your needs. I am not 100% sure what kind of things they offer if you contact them directly. But although, your request is somewhat impossible to fill since those UI generation codes also resides inside that google maps API javascript which you need.
So I would suggest that if you only need google maps interface when offline, take a moment and implement something similar with HTML/CSS/ (and some JS).. markers you could draw on canvas or use normal img's and positioning. If you need to implement dragging and zooming - it would be little bit more difficult but not impossible with canvas or some other techniques. But that being said it would just be easier to keep app online, we all have internet :) ? Making 1on1 matching dummy offline UI against google maps would be really painful process, when we consider the fact that google maps UI also changes overtime, like in their upcoming versions.
You could use OpenStreetMaps instead, it can be used offline: http://wiki.openstreetmap.org/wiki/Offline_Openstreetmap
I am creating a mobile app using Phonegap, JQuery Mobile and Google Maps API V3. The mobile app will allow users to input a destination address and then using the Google Directions API, I will show them the navigation directions to arrive to their destination.
However, the application will also be marking on the map any roads closed due to construction or maintenance works. Is there a way so that if Google Directions shows the driver to go through a particular road where there are maintenance works I change the route for him to go through a different street? The road which will be closed will be marked by a map marker, so as such all I need to do is check if there is a marker and if so, update the route to go from a nearby road/side street.
I am quite new to this, and would be really glad if someone can point me to some tutorial or tell me how this can be done.
Thanks!
There is no option to the specified particular road though, you might be able to get alternative route from Google Direction API.
You should specify "provideRouteAlternatives" property when the code invokes DirectionsService.route() method.
Then Google will attempt to calculate another routes.
That is only available option that I have known.
provideRouteAlternatives property
https://developers.google.com/maps/documentation/javascript/reference#DirectionsRequest
Back with another google maps V3 question.
Here’s the background; I now have a map populated by a number of markers with info windows and what I want to do is add a link in the info Window that when pressed opens another browser window with google maps directions info in it.
I'v read a number of tutorials including the one by Mike Williams but most of them are either written for V2 of the API or just plain don’t seem to work, so do any of you good people know of a good noob tutorial that can give me some idea how to do this?
Thanks in advance
If you're just trying to send folks to http://maps.google.com for a directions query, a URL like http://maps.google.com/maps?saddr=Start&daddr=end might work, but I don't think there's any official documentation on those URLs.
If you want to have directions as part of your application, you should probably take a look at some examples of the Direction Service in the JS API.
when i went through the source code of the google maps page i've realized that the whole map is formed by small tiles of images. But how does the javascript identifies the roads on the google maps to show the way from ourlocation to destination??
I couldn't tell you HOW it works, it is a very complex application but all the work is done on the server and the reason the page shows the map as images is purely down to the limited ways in which a browser can display content.
Google have several layers with information about streets, roads, etc... when you use google maps only show a "graphical representation" of their data in bitmap format, but they need a "vectorial" layer that we don't see it.
Calculate routing is a very complex infraestructure problem in GIS server, for example, with Geoserver and PostGIS you can use Dijkstra Routing with Pgdijkstra.
It's very complex question, for a short answer.
I am trying to embed a Google Map into a dynamic webpage. The only variable the map depends on is the address of a business. That address comes from the website's database. I cannot just statically generate embed code for each dynamic page using the same set up. Is there a way I can embed a map based on that address and show a marker/bubble showing Google's information on that business?
So far, I have explored a few options including using the Google Map API and the Google Data API or just messing with the embed code given by Google. If I use the APIs it seems I have to design my own types of markers and maybe even supply my own data.
It doesn't look like there is an easy solution.
Any ideas?
Thanks.
EDIT: I'm not hung up on going from an address to a longitude and a latitude. I want the info window or "bubble" for a marker to show Google's information of a business.
EDIT: On Roy's suggestion I have been trying to use the map and search API together to achieve what I want. However, the only way I can execute a search with searchControl.execute('business name here'); is if the SearchControl is drawn. Thing is though I don't want to show any search controls. I have been able to hide it, but that just seems like an inefficient hack way of solving this.
Don't just use the embed code. Write a bit of Javascript that will draw a map for you and pass it the address.
Loads of examples here:
http://code.google.com/apis/maps/documentation/examples/index.html
I'm not sure which bit you're stuck on, but you don't need to design your own markers. Google can also create a marker from an address and it can find local business information if it has it (using local search API I think).