I want to add a google map in my website and letting my users pick a their location by clicking on the map in order to pass the address and coordinates to me (to store in my DB).
Does google provide this functionality? If yes, how?
It does, it's called geocoding.
edited:
You have to get the coordinates from the click first - add an event listener to the map for a 'click' event to call a function(event). Inside the function, you can access location by event.latLng. And from there, you can use the reverse-geocoding from the link above.
Related
I have a project using the Google Maps JS API and I'm loading data onto it using the loadGeoJSON method. I also add a click listener to the map's data object.
In that click listener handler, I extract the mouseEvent which tells me the x,y that the user clicked as well as if they were holding down shift/alt/ctrl. Something changed recently though because I can't detect shift/alt/ctrl any more. They are always false.
Any help would be greatly appreciated. This fiddle should show more clearly what I'm talking about, just click on one of the 'google' letters.
fiddle
I am fairly new to javascript/web development but I am tasked in a group project to create image comparison sliders to an existing webpage. There is a map (ArcGIS web map) on the page, and I have found a service that hosts image comparison sliders in iframes.
I was thinking that I could use an EventListener to listen for when the user clicks on a point on the map, and then it would display the corresponding iframe, and hide the last one.
Is this possible?
Yes. This is definitely possible in Javascript. All you have to do is setup a function to be called on an onclick event, and in this function you must obtain the required click coordinates (using event.clientX and event.clientY). Based on these coordinates you can figure out the required iFrame number.
I use the following code (I quote parts of it) to post markers on a google map by right click to a point.
google.maps.event.addListener(map, 'rightclick', function(event) {
// code for open bubble for new marker
});
I need to open the bubble, also when someone do a long press tap on his tablet. Basically I need to make the application usable also for tablet/mobile users.
I read about jQuery plugins that handle touch events, but I don't know how to use them. I need a simple solution based on the code above (to run the "//code" which open the bubble.
Well, you can use the tabHold function on jQuery, with the click event in Google Maps JS API v2.
The taphold function in jQuery, can get the tab and hold action on tablet. But it does not return a lat lng to us.
For lat lng, we can grab it from the Google Maps Onclick function.
So we can combine the two like the following:
1. let tabhold set a flag, to indicate that this click function is from tabhold
2. on the onclick function, check if this current click event is from tabhold, if so, perform the action.
I have a quick demo on jsfiddle, I just copied and pasted some code so it looks kind of ugly. But hopefully it helps.
I Have a div section named 'MapPanel' in which I defined the Google Earth Plug-in.
I have a form next to it and I wish that on a certain event the "focus" of the web page will be on the Google earth so that for example that I can move the map with the arrows.
I have tried $("#MapPanel").focus() without success.
The GEWindow object has a focus() method for this purpose.
You would call it like so, where ge represents the GEPlugin object.
ge.getWindow().focus();
I have added a click listener to all my Markers in google maps. I have added all these Markers to a MarkerCluster. I have added a click listener to this MarkerCluster. When I click on a Cluster, by default it zooms in to that area. Instead of that behavior, how do I simulate that I clicked on all the Markers inside the Cluster at the same time?
How do I simulate a click event without it happening?
If I understand correctly, you can use
trigger(instance:Object, eventName:string, var_args:*) in the google.maps.event namespace to tigger events.
see the reference: https://developers.google.com/maps/documentation/javascript/reference#event
If you want to trigger a set of overlays at the same time, just write a loop(well, not at the same time, strictly speaking).