Missing Pet Web Site - proximity browsing

Events happening in the community are now at Drupal community events on www.drupal.org.
itserich's picture

I am creating a web site for lost / found pets.

Each pet's info will have a node.

I would like to let people narrow by location based on map, zip code, street/city/state and distance.

There are a lot of geo modules. Any ideas what would work best? I have found the location CCK field but want to make sure I am using the best method. I am guessing my needs are relatively simple but I would like it to be robust.

Also, Home Again (a pet microchip service) recently released an iphone app. Any mobile considerations would be great.

Thanks for any ideas.

Comments

You might want to look at the

Adam S's picture

You might want to look at the OpenLayers, Openlayers Geocode, Openlayers Proximity.

Here is an example of the implementation of OpenLayers in Drupal with lost bikes instead of lost pets. http://outsideindc.com/bikes

Marine job board with Drupal 7 at http://windwardjobs.com

wow that is cool

itserich's picture

thanks. not going to be an easy choice!

Is there any posting such as on Drupal about how the site was configured? Is Recent Thefts a block? That would be great.

And the Craigs List is that a feed?

Thanks.

The site is actually using a

tmcw's picture

The site is actually using a very early version of the Nice Map module, which is no longer maintained, and a WMS server behind the scenes. The feeds are indeed provided via the Feeds module, which, combined with the Data module and Views, provides the Recent thefts block.

thanks, can not figure out Location module

itserich's picture

Thanks for the feedback.

I have made two multi day attempts (July and now) to install the Location module and I can not figure out what I have done wrong.

I can insert a great google map into a node via the Location field, but trying to find that node using a proximity view does not work. I have not installed the full zip code table because I am uploading it via phpMyAdmin, but I have installed about 10% of the US zip codes.

Can anyone point to a rock solid, up to date video or written guide on getting in a very basic proximity filter? Are there any options which do not require a zipcode database? All I need to do is let people check within a mile or so of their zip code or address to see if their friendly pet / node has been found.

My main resource right now is drupal.org but I might be missing out. I use Safari Books Online and they have some solid Drupal books but I can find nothing on geography modules.

And about the missing bike feed, that comes from the Feed module? Because most lost pets are reported on Craigslist.

Thank you for anything. :-)

I did the demonstration of

Adam S's picture

I did the demonstration of the proximity module to my salesperson. He is from Zimbabwe. I asked him for two addresses in Zimbabwe from two different towns for two different nodes. I misspelled the address and he corrected me but I told him it was fine because Google returned the Lat / Long and all the location names spelled correctly with the Geocoder. Then we went to the map. I told him to give me a third address. I typed the third address into the proximity exposed Views filter and we choose a distance from that address to show the nodes on the map. The proximity filter can take mountain names, airport names, names of landmarks, partial addresses, misspelled address. And... BAM.... it worked like a charm!

What else do you need?

Marine job board with Drupal 7 at http://windwardjobs.com

well

itserich's picture

Is this OpenLayers Proximity?

That is going to be my next try.

Location seems too hard and not sure about Geo.

Well, this tutorial showed me a plain map, not sure if it worked or not. Any insight on proximity? How do people learn this stuff?

http://drupal.org/node/627816#comment-3433358

How do people learn this

Adam S's picture

How do people learn this stuff?

Create a new Drupal installation with CCK, Views, Openlayers, Openlayers Geocode, Openlayers proximity, a Google Maps API key, and token and be completely determined to break stuff. Keep breaking stuff until one moment you become disappointed that your not breaking stuff anymore. This moment for me is my least favorite because not only do I like to break stuff, I'm good at it. It is also the moment that I know how things works -- bitter sweet.

If you need inspiration and motivation (or a way to blow 3 hours) visit http://www.ted.com/ and know that we are here for you :)

Marine job board with Drupal 7 at http://windwardjobs.com

I would guess I have spent 30

itserich's picture

I would guess I have spent 30 hours on the Location module, it is not for lack of trying.

Tutorials

alarcombe's picture

FWIW I'm building out a set of OpenLayers / general drupal geo tutorials. I've got 2 being proofed at the moment with another couple in the pipeline. I'll add a proximity one to the todo list. They're quite basic, with the intention of getting a basic, generic example up and running that you can then tailor to your particular problem space.

thank you

itserich's picture

I promise that once I get this stuff done I will make some great tutorials.

Developers should suggest end users do that, contribute something back.

The hard part with trial and error is not knowing if there is even the chance of success, if one component is simply not installed, if there is a conflict.

discrepancy between location table versus zipcode table

itserich's picture

Found the primary problem was the location table (sourced from the node) and the zip code tables (provided by the Location module) did not agree. Turns out Google Maps interpreted Portsmouth NH 00211 to mean a city in Europe. Added a street address to the node and it worked.

Still not sure it is working well, the same zip from the node shows a distance of 9.93 miles which seems large for a NH zip code, but who knows. At least it shows it can work, now I can figure out how to make it work.

Still very interested in a proximity solution which does not require an imported zipcode table, that pulls all the node data and the filter data from the same place, so I don't have to upload a new zipcode database periodically. Sounds like Openlayer may do that.

PGA.com and mapstraction

Adam S's picture

There is a another alternative which is the gmap tools module http://drupal.org/project/gmaps. Also, I'm not sure what is going on here but the PGA golf tour http://pga.com/home uses Mapstraction embedded into Drupal. http://drupal.org/project/mapstraction.

Marine job board with Drupal 7 at http://windwardjobs.com

When using OpenLayers module,

R.J. Steinert's picture

When using OpenLayers module, OpenLayers proximity module, and utilizing the OpenLayers WKT field on the nodes being searched, you can expose a filter to search a radius from a specific address. OpenLayes proximity gets the searched address's Latitude and Longitude using an api call to Google. Does anyone know if you can do a radius search by address as opposed to radius by zip code/town using the Location module's proximity Views Filters?

My goal this past weekend was to drop a pin on the map and define a radius for search. I was able to accomplish this after a small patch to the OpenLayers Proximity module (http://drupal.org/node/937206#comment-3554800) and some tricky settings in OpenLayers. I'll write a how-to as soon as I can but until then you can check out the results at http://foragevt.org/. There are still some usability issues that can be solved by a little Javascript and more work definitely needs to be done on the OpenLayers Proximity Views Filters. It would be great if someone wanted to help out considering I'm just doing this for fun :).

@itserich - I like the Lost Pets idea! When you are finished getting this project set up it would be great if you would consider releasing it as a Drupal Install profile so other people could champion this in their own local area. Also publishing your data in RDFa would help to ensure your data gets picked up and understood by search engines.

Thanks rjstatic. I have

itserich's picture

Thanks rjstatic.

I have figured out OL and Proximity (somewhat) and find it much easier to use than the Location module.

My understanding of Location module is it also searches by zip code. There is a zip code table required to use the module.

I wrote up a OL tutorial http://www.drupaldoes.com/content/tutorial-openlayers-mapping-nodes-and-...

The tutorial only shows how to plot points on a map so far.

Still need to find a screencast recorder that works for me.

Regarding the missing pet web site, my goal is a central database for lost and missing pets.

I have created a Drupal group and am writing about the web site progress.

http://groups.drupal.org/pets-shelters-and-rescues

Thanks for the comment and take care.

I'll check out your tutorial.

R.J. Steinert's picture

I'll check out your tutorial. As for screencasts, what platform are you on? As for centralized databases, IMO good solutions gain adoption when you put them in the hands of the people who will champion them. Aiming for the whole world as your target audience is a big bite. I would focus on your local area and your contacts while letting other people take your project and run with it in other areas of the world. In the end, if all of the data is published in RDFa (as it will be in Drupal 7) and publicly available (not password protected), people will be able to find their lost pet through search engines that understand the RDFa data.

I'm obviously drinking the

R.J. Steinert's picture

I'm obviously drinking the Semantic Web koolaid :-P

I am on Win 7 64 bit with 8GB

itserich's picture

I am on Win 7 64 bit with 8GB Ram.

I tried several and like BB Flashback which seemed to work well, but on playback, it caught only the first screen, after that the screen did not record properly.

I have quite a few monitors and cheap video cards so perhaps that is the problem.

Regarding a lost pet solution, localization is key to adoption. However, my goal is not to simply post lost and found notices. I also want people to be able to pre register pets. It seems like it is complicated enough that maintaining a lot of small sites would be harder than a few big sites.

I also would like to post adoption notices. In the US petfinder is the source for adoption from shelters, but there is nothing similar for consumer to consumer.

But, that is all a long way off.

OpenLayers Locator Module may help solve your problem.

nerob89's picture

I have had a lot of luck with the OpenLayers Locator Module. It basically does everything for you. For more information, please refer to:
http://drupal.org/project/ol_locator

Location and Mapping

Group organizers

Group categories

Wiki type

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: