Finding user images based on keywords/tags and precise map location - google-maps

For a given geographical location, defined either as a place-of-interest or as a delineated area on the map, I would like to find user-submitted pictures whose tag matches a certain keyword. For instance, I'd like to find pictures tagged by users with the word 'rainbow', and whose location is within a certain location that I can define within an online mapping system such as Google Maps.
Flickr and Panoramio used to be able to allow searching by keyword (picture tag), and one could then simply zoom in to the desired location in order to be left only with relevant results. However, Panoramio is of course now offline, and Flickr seems to have dropped this feature.
What I currently do is to zoom in on the desired area with Google Maps, then bring up the Photos layer from the bottom of the screen. The downsides are of course that I have to go through pictures manually, since there is no search function for them; and that I am limited to rectangular regions of interest as opposed to being able to define a polygonal area, which you would need in order to delimit, say, the valley of a river, or the outline of a national park.
Any tips from GPS/geolocation/GoogleMapsAPI enthusiasts would be much appreciated!

Related

Highlighting cities with google maps

I've recently discovered geolocation, it is a wonderful and fun little feature.
I've figured out how to show somebody's location on a map with a little pin and how to fetch the different parts of their address from the delivered data.
One thing I want to do with all this though is given somebodys location to then highlight their city.
I know that now with google maps if you type in UK postcodes or Japanese cities this can be done, however it gives a very difficult to see outline around the location. It doesn't fully shade it.
My ultimate goal is to shade somebodys city a different colour depending on certain variables, the actual google maps content beyond the basic 'this is where the city is' is unimportant (working out these variables and colours is of course a different area and not the purpose of this question).
So...sorry for my poor English here. But I woder. Is there anyway, given a certain input which on default google maps would give the outlined administrative division, will shade the city a given colour?
Bonus points if you can do more than one city at once (ultimate goal- show their surrounding cities as well as their current city)
I'm doubt you can do it for google map as there seem no way to retrieve google map boundary data. The alternative that I can think of is the use of OpenStreetMap with Kartograph library. This possibly could give you a solution, but you need to manually generate the border out from the OpenStreetMap and color it using the Kartograph library.

open earth map with irregular station measurement overlays

I would like to draw a map of current temperatures (or air pressures, etc.) from many weather stations, with the underlying map still recognizable. the problem is easiest to think of as follows:
I have an array of spot measurements from irregularly spaced dots---think triples of GPS coordinates with one temperature value each. my stations can be very close to or very far apart from one another, and a user may want to zoom in or out. cold should be blue, warm should be red. Ideally, I would like to just pass the array, the color range, and have the rest be taken care of. I would prefer everything to be inside a web browser. The user needs to be able to zoom in, zoom out, move around, and get back to his current location.
I do not even know how to think about this problem. If a user has zoomed out enough, non-transparent dots could be so close as to obscure the terrain. However, zooming in, it would be nice to recognize the dot that is the station itself. This presumably requires some intelligence that realizes how many dots there are, e.g., relative to the density of the display? not sure.
I believe google maps charges for many API calls, so I would prefer using an open map and/or open API that can use different underlying maps. It does not have to be fancy. I don't care about directions, etc.---just a map that is recognizable at most zoom settings, with landmark and street names, and my nice temperature station overlay coloring, so that a user can visualize where it is cold and where it is warm.
(Stations come online and offline, but I don't need to update this more than once an hour. I can place the map measurements into a file that is URL web-accessible.)
is this an easy or a hard problem for the high-level web programmer?
/iaw
after looking around for a long time, I think the best way to do this is with html5 openlayers nexrad.
alas, the docs seem to be a mess. half the examples that I found did not seem to work. it's pretty hit-or-miss. similarly, the openlayers cookbook also seems to be outdated and has incorrect examples, but they did have a reasonably short example of such a nexrad map overlaid on the U.S., that one can further study.

Grouping registering users into metro areas

I have to group all users registering to my site into metro areas. A metro area is defined a proximity to one of the world's 100 most populous cities.
In my proposed solution the user will be presented with 2 dropdowns. One for country and one for cities. That seems like the best UX.
I was also thinking about using html5 browser location API to pre-select some locations on the dropdowns.
Has anyone done something similar before and how did you approach it?
sub question: how would you store this data
ip-geolocation is often not extramly exact.
I would force user to enter country, city and zip.
And pre fill form with data from browser location api.
In database i would store country, city, zip, and lat long.
Find matching city + zip by lat long and backword is very easy with google geocoder api.
https://developers.google.com/maps/documentation/geocoding/
Then you only needs the lat long values of big citys for search in area. Easyes is to search in squre not in circle. But if you realy needs a cirty, you have to use a databse with gis functionalety. http://postgis.refractions.net/
I would not use geolocation. It doesn't always work the same in all browsers and isn't always reliable for every situation.
I have done something similar and I used area code. Some big metro areas have overlapping area codes but if you use the major area code for the metro areas you can find a good way to attack this. Some states only have several major area codes.... some go up much higher but you know that the more area codes, the more populated the area is (typically). The more area codes attached to a metro area could be used as another factor to determine populous cities.
Most users might not want to give city or zip but will give an area code on registration. You can assign area codes to states and also area codes to metro areas.
This map should help if you decide to approach it that way as an extra value
http://www.nanpa.com/area_code_maps/ac_map_static.html

Creating custom overlays for Google Maps

I have a set of addresses, lets say restaurants, which I would like to plot on Google Maps and then make it possible for the user to rate them. I would also like to provide a search feature where the user can filter the restaurants by e.g. rating, food choice etc.
I have created the database architecture to store the restaurants and ratings, but how should I go around creating the overlay?
Are there already a feature where I can pinpoint an address and then supply my own html-code/iframe or alike, or do I need to create the overlay from the bottom myself?
I have looked at the overlay API, but I can't seem to figure out what is the best way to go around doing it?
I found out that the InfoBox would work.

Obfuscating Geocode results to protect privacy?

I have an app that finds other users within a 20 mile radius on a google map and associates an icon with each of them. However, I do not want their exact points to be given but rather an approximation. I've wrestled with a few ideas on how to do this:
Only Geocode the Zip Code, make graphic icons for 1-99, use the icon to represent how many results are within the zip code, and use the info window to show hyperlinks to the individual results. The only problem is, I'd like each individual icon to be shown because it just looks a lot better.
Add/Subtract a random number to the lat/lng values stored with each user and add a translucent circle around the icon.
What do you guys suggest?
It depends on the level of privacy you want (the 1st option protects privacy better), but I'd be tempted to go with randomly moving the indicators because it's a more natural representation (people on a map, not groups of people on a map) without too much of a compromise in terms of usefulness.
That depends on how hard you think someone will try to defeat your system.
If you plan to track these positions over time, you give away more information over time than you do in a snapshot. For instance, if you choose a fixed-offset from the center of the circle, it may be possible to find this offset by mapping the path over time to the street map. On the other hand if you continually change the offset, the position may be discoverable by averaging.
Here's one possible scheme based on hysteresis. Leave the visible circle in place until the user exits an invisible bounding circle with a random radius. Then compute a new visible circle with a different random offset, and also set up a new invisible circle with a different random radius. This should generate a visible-circle movement that is almost impossible to reverse engineer, but also avoids lots of jittery movement.