If I search a query in google maps for example "carlton victoria australia" then it will give me a map of the region with the border around that area.
My questions are:
Is there a way to get list of all regions from the google map api for
certain province or country?
Can I combine the region information for example, change the color and also add some infowindow on top of the region?
What kind of level of the region that I can get from the api (district, subdistrict, village)?
Currently Google Maps JavaScript API doesn't expose any boundaries of geographic features. There is very old feature request in the public issue tracker to add this functionality, however it looks like Google didn't set high priority on this:
https://issuetracker.google.com/issues/35816953
Feel free to star the public feature request to express your interest and subscribe to further updates from Google.
You can get polygons from other sources and add them to Google maps as additional layers.
The nice workaround to get polygons in GeoJSON format from OpenStreetMap is described in the following answer:
https://stackoverflow.com/a/40172098/5140781
So, if you download the GeoJSON you will be able to add it to map using the data layer and its loadGeoJson() method:
https://developers.google.com/maps/documentation/javascript/datalayer#load_geojson
You can style colors of GeoJSON objects and create info windows. Just read the aforementioned documentation.
I hope this helps!
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 want to write an application that gives me the exact route of a subway.
When you use Google Maps it just connects two stops linearly, but not the actual way.
Is there a way to move a route anywhere on a map without being bound to roads?
If there's any solution (doesn't have to be with the Google Maps API) please let me know.
Edit:
Example
Google shows the train route like the brown line, but the train actually drives the blue line. What I would like to do is get the blue line so that I can get the coordinates of the route and calculate the curves and elevation.
I know that I could add like 50 waypoint and get get a "fake" route with them, but I would like to have it automatic and not done by hand.
To show the transit directions (subway, bus, tram, etc.) Google Maps uses the data provided by transit agencies in the form of GTFS feeds. This is a responsibility of the agency to provide a detailed shape of the route for the transport according to the GTFS specification. You can have a look at GTFS documentation to figure out how does it work:
https://developers.google.com/transit/gtfs/
https://developers.google.com/transit/gtfs/reference/#general_transit_feed_specification_reference
I hope this helps.
I have an account for Nokia Maps API but am wondering what URL I should use to request tiles through the API correctly? I am using the Leaflet maps API and my URL string looks like this:
http://3.maptile.lbs.ovi.com/maptiler/v2/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?app_id=XXX&token=XXX
It works, but I don't believe I am using the API correctly - I just stole the first part of the URL (http://3.maptile.lbs.ovi.com/maptiler/v2/maptile/newest/normal.day) from the Network tab of dev tools when I checked out Nokia maps in my browser.
In the documentation it tells me I can request based on lat, long and zoom, but not based on X and Y.
Is anybody familiar with Nokia Maps API?
Regarding the original question I'm guessing you have acquired credentials for the Map Image API: http://developer.here.net/docs/map_image/index.html There are a series of interactive examples available, which explain how to get back a static map image using latitude and longitude such as this one here: http://developer.here.net/apiexplorer/examples/api-for-rest/getting-started/basic-map-wh.html All the urls for the Map image API start with http://m.nok.it
Using URLs for the map tiles from the http://here.com website isn't the same service, it isn't an official API (hence the reason it is undocumented) and the URLs could be changed without notice.
Updated
HERE now offers three web-based Maps APIs, and since last year a TMS (Tile Map Service) a.k.a. Map Tile API, which is what I think you are after is now publicly available.
As noted by Luciano Issoe, the correct URLs for the Map Tile API are now publically documented see: https://developer.here.com/rest-apis/documentation/enterprise-map-tile
Alternatively, if you want to use an interactive map service with Nokia's mapping data, your best bet would be to use the Maps API for Javascript described here:
http://developer.here.net/docs/maps_js/index.html
It seems that it´s a documented service now: https://developer.here.com/rest-apis/documentation/enterprise-map-tile
To retrieve a map covering a specific area using the Map Image API, add two points of interest to the map for the top right and bottom left corner and then use the nomrk to make the POIs invisible:
http://m.nok.it/?w=512&poi=52.6764,13.7636,52.351,13.0185&nomrk
Since Jan 2012, Google has started highlighting search areas in pick color. See the details here:
http://googlesystem.blogspot.in/2012/01/highlight-areas-in-google-maps.html
Does anyone know if this can be programmatically done using google maps API 3? I would want to show my cities in the map highlighted as shown in the link above.
I have already tried the Geocode API where I search for a city. That API only gives me the lat and long information. It does not help me in plotting the city boundaries.
No. It's not available in the API.
(It may be available in the future. Features of Google Maps do migrate into the API, but Google don't make announcements in advance and no-one has a crystal ball.)
You would need to find the city boundaries and draw the line yourself. Boundary data is almost certainly public-domain for the US. Other jurisdictions may not be so forthcoming.
Although a very old post my answer might help somebody out there as am landing on this post every time I query for bounding box:
Yes we can get the bounding box coordinates that google is using to highlight a region using Googles geocoding service. check for the response of the API call in the below sample from Google.
https://developers.google.com/maps/documentation/javascript/examples/geocoding-simple?refresh=1
I have a scenario where I have to highlight borders and shade a state or city after geocoding it (when I got the lang and lat).
How can I do this, do I need to have a complete information of a city to surround it with polylines? Or is there a way that map API can do this for me.
True. Google does not provide this feature. So what we can do... we can have the lat/long of the borders of the state. And we have to draw polygons ourselves.
I used this JS object. And changed it to Google map object (google.maps.LatLng).
For example:
var statesobj = {"AK": [new google.maps.LatLng(70.0187, -141.0205),
new google.maps.LatLng(70.1292, -141.7291),
new google.maps.LatLng(70.4515, -144.8163)]}
So, it's easy now. Loop on these lat/longs. And you can draw the polygons on every state of US.
So this is the solution I came up. If you guys know some better idea to do it. Please share.
You can also try Google Geo Charts:
http://code.google.com/apis/chart/interactive/docs/gallery/geochart.html
Google Maps API doesn't allow you to retrieve city borders. There are a couple other places from which you can get the coordinates, though:
Flickr API
There is a Flickr API based on photos that people tag, but it's only as accurate as the people who tag photos: so it's good enough for bootstrapping but probably not for production: http://karya-blog.blogspot.com/2012/12/fetching-city-polygons-with-flickr-api.html
Natural Earth Data
An accurate alternative is www.naturalearthdata.com. To get that data from there you just need to make two requests: one with the city name and one with their ID to get the parameters:
unlock.edina.ac.uk/ws/search?name=berlin&gazetteer=naturalearth&format=json
and then
unlock.edina.ac.uk/ws/footprintLookup?format=json&identifier=14126951
and you're set :)
Mapzen
If it's possible for you to pre-fetch the data, go for Mapzen, they have a full and pretty accurate database: https://mapzen.com/data/borders/
I'm afraid google maps API doesn't provide any means to access region (country, state, city, ...) shapes.
If you want to highlight regions you have to create custom overlays based on data acquired elsewhere.
Now the basic map example includes a "mashup" of data. When identifying data is fed to the web service, the resulting output can pinpoint locations on the map.
It shows how a geographic Map Marker is placed on the map to identify a specific location. Map Markers can use the default icon (shown) or a custom image, gauge, or even a chart. Optionally, the map can be configured to display a Map Marker Info window, containing additional location-specific data, when the marker is clicked.
It includes data-driven, colored regions (in this case, representing postal codes) overlaid a map of eg Washington, DC. Logi Info can work with GIS boundary data to produce region overlays for states, counties, cities, school districts, and other areas. Like the Map Marker, regions can be clicked to display a pop-up information window with detail data.