Get the building height from the Google MAP API - geolocation

I want to build a website which has a Google MAP which shows a 3D visualization of buildings on it. Is there a way so I can highlights building within a given radius?
Also, I want some information about my chosen point. like
The height of a building within a radius of the chosen point
Area of a building within a radius of the chosen point
All retail within 800 meters walking from the point
The type of retails logged around the building
(400-meter) walking distance of existing or planned bus, streetcar, or rideshare stops
(800-meter) walking distance of existing or planned bus rapid transit stops, light or heavy rail stations, commuter rail stations, or commuter ferry terminals
The frequency of the found stations for weekdays and weekends
The trips should be in both directions. No double counting of stations on both sides. Stations within the walking distance allowed counts as one! Projects served by two or more transit routes such that no one route provides more than 60% of the documented levels may earn one additional point, up to the maximum number of points.
Within 4800 m of biking find a bus rapid transit stop, light or heavy rail station, commuter rail station, or ferry terminal
Biking is only on bike lanes or roads below 40 km/hr speed limit
Can someone help me with this??

Related

Is it possible to create a choropleth map solely from a set of long/lat coordinates?

I'd like to visualize a number of points on a map. Unfortunately, there is no consistent address associated with each one. I've used Google Fusion tables to get a rough read on where the points are, and am relatively satisfied with the approximate locations of most points (sometimes Google figures out where they're located based on a landmark, sometimes based on an intersection provided, sometimes by street address, etc.).
My goal, then, is to create a choropleth map of a city (NYC, in this case), showing the number of points located in each neighbourhood. Is it possible to do this by somehow counting the number of points that fall within each neighbourhood?
I suspect that if fusion tables give me a passable visual, I may be able to use google's geocoding service in the same manner to figure out the number of points in each area, and use this to then build a choropleth (not a heat map — I'm after some level of interaction, like tooltips over each neighbourhood).
Is there any way to do this, or am I way, way off?

lat lng to neighborhood info

Is there a dynamic hierarchical data source out there that I can use to identify a lat lng point into a neighborhood?
For instance, if I was in Manhattan, it would recognize that I'm in Chinatown, Manhattan, New York City in that order. And if I was in a less densely populated area it would just put me into a neighborhood that would span a larger area. It can be a bit fuzzy in this concept.
Ultimately I want to group people into their nearest neighobrhood given evenly sized neighborhood population.
I know that zip codes can roll up into a metro area, but I wonder if there is something that's more granular or more dynamic.
Google's geocoding API can give a variety of levels of detail about a location. It varies by region, country, and even at state/local levels but you should be able to get close to what you're looking for.

Performance for retrieving geo location (lg, lt) and driving distance between two locations

In our app, we need to find the driving distance between 2 geo locations in city. Only driving distance and we don't care about the directions. We are evaluating ways to find the distance which could have tolerance of less than 1,000m. One is to divide city area into blocks of, for example, 500m squares. The driving distance between two blocks is equal to the distance of the centers of two blocks. App needs to send 2 addresses to geo API and ask for the geo location first, then app finds the block the address belongs to and send the geo location (saved in table) of two block centers to geo API again for distance. To speed up search, the app can save latest block distances and pop it up if a late search happens to be in the same blocks. The 2nd way is to send 2 addresses to the geo API and ask for the exact distance.
My question is which way could be faster finding distances for thousands of distance requests? Or is there other way which is faster for finding the driving distance in city?

How to determine which city a given long and latitude points represent?

I'm currently using a very large geo-ip database that i've built as a mixture from many freeware sites.
The problem is - the mapping of all those database is : map: (ip) -> (latitude,long)
I'm looking for a way that will deduce the location of those latitude and long points by resolution of a city and if possible - offline.
thanks
You may want to try Google Geocoding http://code.google.com/intl/en/apis/maps/documentation/geocoding/
to do it offline, you'll need a database of long/lat coordinates, such as this: http://www.maxmind.com/app/worldcities
then to match the long/lat to the cities, you'll have to build an algorithm which narrows it down to within a margin of error.
a brute-force method might be to measure the distance by using pythagoras' theorem, but that would rapidly kill your CPU. a better way may be to start by excluding results that are 1 or more above or below your target lat/long, then do your measurements on the remaining results.
you can get city and region lat/lon information from citycsv.com if you really need your info offline. It would be easy to query the data for lat/lon and get a city or region back. However as stated google would be able to take a lot of overhead off your hands with their online geocoding tools.
you could run google's geocode in burst-mode (2.500 max per day) through a cron job and fill up your offline database over the course of ....

GeoIP nearest (closest) country

Guys i have a little problem, i tried to find some examples on GeoIP based system that expands searches based on nearest neighbor countries. For example the visitor is from UK and tries to find IPs from France, Spain, Belgium etc. not for example Brazil, Argentina, China. So how can i get nearest countries from a given country/IP and expand incrementing the distance?
Edit: I'm using the free Max-mind version, since i don't care about cities that much. And my project is C# based.
Well, the first step to reduce the problem is to use basic geography, and categorize the countries by continents.
From there you can make a list of distances of within a given continent, and sort based on those "distances" or "weights".
The geographic distance (e.g. km or miles) between capital cities should be a "good enough" approximation to get started if you want to be fancy. I bet you could even find such a list with a bit of searching on the Internet.
From there you have the "post-office problem" (Knuth) or "nearest neighbor search" optimization problem, and in this case I suspect you can [REWORDED] simply go with a linear search within the continents partitions. If you need better performance, then an approximate algorithm approach should suffice. (answers are not guaranteed to be best solution, but should be reasonable most of the time)
Note this form of geography based "routing" is weak in a few exceptional cases, such as Cuba, which does not get Internet access from its (naive) obvious geographic neighbor, USA, and some "black-hole" type countries due to political relations. North Korea and Tibet I suspect are similar cases.
Maxmind gives you the Lat/Long of each country, so you can just calculate the difference of your country to the others and you're done. See this thread for geolocation distance calculation or use a library of your choice.
But keep in mind the the geo location of a country is just a single point somewhere in this country and not the nearest point to you.

Resources