Get bounding polygon coordinates from Google Maps - google-maps

Does Google Maps(or any other provider[commercial/free]) provides API(s) that can return bounding polygon coordinates of place search? I'm not talking about sw-ne coords only, rather, actual boundary that perfectly defines the shape of a place. Place could be city, or more fine-grained identifiable place?
I don't know much about Google Maps API, but I did give it a fair share of searches and testing out sample codes(from examples provided by Google itself), as well as browsed through API reference, but couldn't find any.
Any help please...

If what you mean is "is it possible to get boundaries of any place returned by Google Places API as we can see in Google Maps ?", the answer is no, you have to use KML files describing the polygon representing the boundaries of the place.
Depending of what you are searching for, it exists a lot of open-data KML files representing some state boundaries, for exemple this file for example.
Please improve your question if you're searching something more specific, it is too broad right now. I didn't downvote, but I guess this why some other people dit it.

Related

Can I Use Google Maps Developer API to Get and/or Draw Regional Boundaries?

If you look at the Google maps website, you can see that it accurately outlines a region (neigbourhood), giving you a pink shape that curves around the road. This means that Google has this data internally. If you use the Google Maps Developer API, however, it seems that you can only get a four-point boundaries object (NW, NE, SE, SW). If you then use this object to draw to, you basically get a rectangle.
Has anyone had this problem before and if so, how have you been able to get the detailed region info drawn on the map? Note that I'm trying to automate this as much as possible and I'm working in Saudi Arabia, where I don't think it's easy to get a third-party database of regional data.
You can download free shapefiles from many countries for example from here: http://www.diva-gis.org/gdata.

Accessing google maps area coordinates (suburb boundaries)

I'm trying to show some data about Australian suburbs. 'Suburb' is the term that Australians use to describe an area, if you are from the rest of the world think post code or something similar.
I'd like to be able to get access to the area boundaries that are already in the map. These are examples of the kind of boundary that I'm talking about:
Marrickville, Sydney (2204): http://goo.gl/maps/QYRhx
Clapton, London (E5): http://goo.gl/maps/3an2Y
I want to be able to draw the boundary on the map, draw multiple boundaries on a map (e.g. show which areas make up the 'inner west'), shade the areas to indicate their vaue of something or other. Generally do stuff with them.
This question asks about how to get boundaries that are drawn manually, but I want to access the ones that already exist.
This question asks a similar question, but it isn't answered.
This question is similar, but the responses suggest using shape files, not getting them directly from Google.
I've also tried the maps styling wizard, and whilst the administrative, neighborhood boundary is what I need to show, it doesn't seem to be able to affect the map.
I've looked in the api docs to no avail. Does anyone know if this is possible?
No, it isn't possible.
The area boundaries feature is not (yet?) implemented in the API.
If you explicitly need data from Google then I can't help you.
But if you just need data on Australian suburbs and don't care where you get it from (and if you happen to be interested in SA or NSW) then you can get GeoJSON or KML for SA from data.sa.gov.au/data/dataset/suburb-boundaries and for NSW from data.gov.au/dataset/nsw-suburb-locality-boundaries-psma-administrative-boundaries.
You might find others at data.gov.au/dataset too, I haven't searched that much.

How do I obtain the coordinates along GMaps directions?

I want to create an online map for a hiking trail, and I have been using my smartphone to collect coordinates from it.
I have many questions regarding what's good practice when it comes to making such tracks, but for starters: it would look much neater if I could edit the readings so that they are right on top any roads in Google Maps. How can I achieve this?
EDIT: I want to find the coordinates that will make a track along a road look exactly as if I'm using snapping/directions even when I'm not.
I've tried tools such as QLandkarte GT and Viking, and with the latter I was able to manually remove excess coordinates and move the remaining ones so that they're exactly on top of roads (inside Viking, using OpenStreetMap). However when I load the edited .kml-file in Google Maps, the roads seem to be in slightly different places and the result is hardly better than before editing.
I tried using the hack that exports GMaps directions as .gpx, thinking I could insert Google's own coordinates along the roads. But the exported file only had coordinates at the turning points with straight lines between these.
QLandkarte GT supposedly has a snap-to-road feature (see answer in link), but I haven't found it and I also don't know how to obtain a vector map of the area.
Then there's Google Earth which people seem to use for this, but again I can't find any track editing features (in the free version).
In short:
How do I edit my existing tracks so that they match roads in GMaps...
OR
How can I obtain new tracks representing roads in GMaps...
...so that the resulting track is as smooth as Google's own directions or other professional GPS-data, when displayed in GMaps?
It seems like it's possible to get these coordinates from Google Maps after all, exporting the directions polyline. I'm not sure how, it seems to involve adding the parameter output=dragdir to the link.
Anyway there's a tool called GPS Visualizer that can create a .kml-file with the wanted coordinates.
Edit: Will accept my own answer as long as it's the only one, but I would still like to know more.

google maps nongeographical space

I’m wondering if one of you can point me to a Google Maps API V3 code example which solves the following problem:
I have a data set with two-dimensional point data which is NOT georeferenced; i.e., the data do NOT refer to locations on the surface of the earth. In my case the data are for documents located in an artificial/synthetic, two-dimensional ‘information’ space.
For the moment I am successful in displaying and interacting with these points in the Google Maps API, mapping all points as long/lat coordinates centered on the long/lat coordinate 0:0; i.e., somewhere in the Atlantic Ocean off of the West coast of Africa :-)
Although I can get away with this for experimental purposes (the ocean around 0:0 is pretty much empty, so it does not interfere with my visualization), I’d like to adopt a new, abstract coordinate space; essentially replacing Google’s ROAD/TERRAIN/etc. maptype with my own (empty) one.
From what I have googled, this can indeed be done and I have seen some impressive DNA/genomics work in which this has in fact been done. But rather than hacking those complex apps, I’d like to see a very simple, base code example where someone plots some arbitrary points in an arbitrary space using the Google API.
Can one of you point me to such an example?
All,
I appears that the answer was in front of me all along (it usually is... sigh).
It seems that developers.google.com gives a nice example at
https://developers.google.com/maps/documentation/javascript/maptypes#CustomMapTypes.
The code for the example itself is at https://developers.google.com/maps/documentation/javascript/examples/maptype-base
Seems like this is basic enough for me to start working from.

How to get the width of a road through Google Maps API

I need to find the width of roads in Google Maps.
Google Earth can't be used as it doesn't support Linux.
Streetviews cannot be used, since it is not available in the area I live.
This link: http://osdir.com/ml/google-maps-js-api-v3/2011-05/msg00666.html suggests the method of finding the distance between the two ends of the road by knowing the coordinates of both sides.
Therefore the first question is as in title.
BTW, I have managed to display the "route" between the two coordinates already on the maps.
The type of the map can be set to "satellite" view through the API.
Does that affect the distance and coordinates that'll be fetched?
All this stuff about getting points across the street from each other is further complicated by the fact that sometimes the geocode returned will be a ROOFTOP geocode--likely meaning the centroid of a building--and other times, it is RANGE_INTERPOLATED which suggests that it will be not very precise. See http://code.google.com/apis/maps/documentation/javascript/reference.html#GeocoderLocationType. In either case, it won't be the edge of the road.
It may be sobering to look just how far from the road Google Maps may put the marker for an address: http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=4+Clinton+Drive,+Englishtown,+NJ&aq=&sll=40.299985,-74.290066&sspn=0.009426,0.015213&gl=us&ie=UTF8&hq=&hnear=4+Clinton+Dr,+Englishtown,+New+Jersey+07726&t=h&z=16
In short, unless your use case can tolerate a pretty wide error bar, I think it's safe to say that this just isn't going to work, at least not without considerable resources at your disposal.
Google Earth web plug-in is not available for Linux, but if you don't need it to be a web page, then you can try working with Google Earth app, perhaps. It works on Linux.
If your use case is for a reasonably narrow geographical area, there may be data available elsewhere. But getting this from Google Maps API v3 is unlikely to be a very good option.
(As always when I give a "I don't think this is feasible" answer, I'd be happy for someone to come along and prove me wrong.)
I'd look at the coordinates of individual houses. If house numbers are arranged such that n+1 is on another side than n, the distance between the two might tell you something about the width. But I don't think there's an API for that...
Here's the NON API solution i thought of,
In my country , roads named with different code names like "A3" , "B354", "C6".
"A" is for main roads. Most of the time width of the road is consistent as per road code. Therefore we can use road code to get the width of the road. I don't know if this works for your country.