I'm building a google maps web site with markers placed onto the map. Some times the markers overlap so I want to be able to interactively bring to the front specific markers.
I can use setZIndex() for this. But I need to know the initial max zindex of all the markers. getZIndex() is no use as it doesnt seem to return anything unless youve already called setZIndex().
It would be tempting to say "just start with a very big number" but I believe Google uses latitude or something to calculate the initial zIndex so the maximum zindex may vary? Making this scheme risky.
Does anyone know what the max initial zIndex will be for N markers in Google Maps V3?
You can use the constant MAX_ZINDEX to ensure that the marker will display on top.
marker.setZIndex(google.maps.Marker.MAX_ZINDEX + 1);
Search the reference of the constant in the Google Maps API V3 Documentation
Related
A tile sent from Nokia Here-Map tiles API, contains at least two POIs that do not exists in real life and also not on other Map services like Google Maps and OpenStreetMap. How can i get accurate/fresh POIs with the Map Tiles Api?
I'm using the service with LeafletJs, and i use a hybrid.day base map and a base one, with the pois parameter set to true and map version set to "newest". The tiles i'm getting effectively contains POIs but it doesn't seem accurate. I wrote to the sales support at Nokia Here, i'm not sure they can help me, but the website also indicate to use stackoverflow for technical questions. Mine doesn't seem like a sales related question or a technical one but i see no other alternative contact.
This is a link to get a tile with incorrect POIs:
https://4.base.maps.cit.api.here.com/maptile/2.1/maptile/bd9e007617/normal.day/17/59178/60113/256/png8?app_id=mVrBstuYsfUVga31l6IX&app_code=xphvU-Uj071dI-UkNaxMrg&lg=fre&pois=true&style=default
The tile contains two POIs that do not exists in real life or on other map services like OpenStreetMap. The two are: "Ecobank" and "Restorant Aku".
The place the map shows is around these coordinates: lat:14.729235451930021
lng:-17.46165559897639
The returned tile shouldn't contains inexistant POIs.
This is an error in HERE database. You should report it through HERE Map Creator
It will go through some kind of quality moderation, so it may take a few weeks. Maybe adding a fresh photo would speed up things.
I am using here map and I use clustering. But I have problem for displaying maker whose cordinates are same /dublicate . When I zoom in clustering , unfortunately the makers are not visible but cluster is still visible. How to display these makers when cluster is zoomed ?
My clustering options is as following
var clusteredDataProvider = new H.clustering.Provider(dataPoints, {
clusteringOptions : {
eps : 16,
minWeight : 2
},
theme : new PusulaClusterTheme()
});
We had the same issue. If you absolutely need the markers to show the exact very same spot up to the inch so to speak, then I don't know what you could do. But we wanted to show markers for each house on a street and sometimes we had multiple families in a house so we could not get the multiple ones to properly show.
We opened a ticket with HERE and this was their reply:
"...when you are placing multiple markers at the same geo-point, it is
just that they are stacked one on top of the other. Since they are all
at the same coordinate only the top most one will be displayed. So
to enable multiple marker to be shown at the same coordinate, you will
need to have some logic to avoid overlapping of markers. There is no
method straight off the shelf in JS API that can do this for you, but maybe
you can use the method map.getObjectsat(X,Y) to check if there are
already any markers at the point. If there is an existing one, then use
some logic to slightly change the coordinate value of the new marker
to be added at the point.
We ended up copying a solution we found here on Stackoverflow see this link that was written for Google Maps, but is just as relevant here with HERE. It uses a function to randomly change the last digit or 2 of the coordinates if they are multiple, and that way all your multiple coordinates will be a little bit unique and spaced out.
We want to make an app where we need to integrate google map. Though we have visited the google web page for knowing the pricing. We want to know If we integrate as it "Standard User" and want to have below feature
As per our understanding - google charges whenever the map is loaded or API is used by the user. Anything above the daily quota of map load has to be paid.
In Zoom feature - will Zoom in and zoom out is treated as two calls.
Similarly, pan feature - will it be treated as map load
Draw circle to create an area on the map to find specific info which is already fed by the user based on the location. Will it also be treated as a call or map load?
In case if user to find location with typing - will the number of characters typed and its search result will be treated as API call for which we have to pay in the case of the above daily quota
I don't know about the last two but the first two are covered in the FAQ for Google Map APIs
After a web page or application loads a map, a static map image, or a Street View panorama, any user interactions with it, such as panning, zooming, or switching map layers, do not generate additional map loads or affect usage limits.
Ok, let me preface this question with the fact that I have created a lot of google maps, but they have been strictly markers and polylines denoting routes and a couple with some handler interaction.
Now I am looking to show basically a map of the world, mostly North America and I want to split this continent into my predefined regions with some lats/lngs that I have. Using these regions I want to draw something like a polygon with a light opacity and different color per region.
I then want to use marker clustering but I want the clusters to be specific to these regions. I have looked around but I haven't found an example like this. I have seen pages that say you can do this but not how you would go about doing this. Again, I am definitely a noob when it comes to drawing polygons and using the marker cluster. I know this question is fairly vague but just looking for an example/idea to start off of, and more so I don't want to write a bunch of code against this specific api and then find out that it is not possible.
Any ideas or suggestions are greatly appreciated....Thanks.
It can be done, but will require a rewrite of the MarkerClusterer (probably will simplify it).
You will need to determine how you are going to represent and load the cluster boundary polygons (KML, GeoJSON, native Google Maps API v3 polygons) and probably use the google.maps.geometry.poly.containsLocation(point:LatLng, polygon:Polygon) instead of LatLngBounds.contains to determine which cluster "owns" a marker.
Can anyone share some JavaScript that enumerates all markers in a Google Map?
Need script for v2 and v3 if possible. Thanks.
The only time you have access to the markers and can enumerate them is when they are created. The map has no awareness of what markers are attached to it, and it seems like you want to be able to do it on a map that has been initialised and markers have been added.
In other words, that is not possible. The way to do this is to put the markers into an array while you make them.