Posted by Adam S on August 1, 2011 at 2:51pm
I built the Windward Guide so businesses and boaters can place location information on an annotated map. None of the location, address and mapping modules fit my needs so I went ahead and pulled code out of several different modules and made a mash up.
The work flow is managed using the Workbench Moderation module so anonymous users can submit a business listing which goes into a queue for admin approval. Any user with Workbench Moderation can edit any node which makes the map annotation content type and business listings like a Wiki.
Have a tour:
Windward Guide
Find a business
Add add a business listing
Some destinations with panorama pics.
Please tell me what you think about it. :)
Comments
_
Very nice-- love the theme. Clean, pleasant, usable-- excellent blend with the site topic.
What did you end up using for the home page rotator and the proximity search?
_
Don't be a Help Vampire - read and abide the forum guidelines.
If you find my assistance useful, please pay it forward to your fellow drupalers.
@WorldFallz Thank you for
@WorldFallz
Thank you for the nice compliment. I put a huge amount of effort into making the website.
I cruise on boats and one thing missing is a way to find information based on exact location. Yelp doesn't do this. Yelp can tell me if there is a marine engine repairman in a town but can't tell me if I'm going to have to go 100 yards or 100 miles to find one. More importantly finding stuff close to marinas and anchorages is important. I need to know if a supermarket is 100 yards or 3 miles from a marina because a store 3 miles without a car can be extremely inaccessible.
I took the home page rotator from the Europe theme of OpenPublic. The js code has this comment which made me second guess if I wanted to use it.
//shoots self in head for doing this//
// Kaloyan:
// I don't know why this works this way byt PhaseII use it this way in menu.js in profile.
But it ties into the purpose of the site which is to be super simple and as easy to use as possible. Most of the time I'm cruising I either have no internet access and have to use my iPhone to access the web or quite often the internet speeds in isolated places including in the Caribbean are very slow so simple is a virtue.
I built the theme on the Omega 5 base theme with integration of the Delta and Context modules. If people use the website I'll return to theming by leveraging the responsive theme features of the Omega 5 theme for mobile devises.
Finding a mapping solution that made it easy for users to geocode or if the user's address or the user's location is offshore and doesn't geocode to be able to place a point on a map by a simple click was hard in Drupal 7. It's really the whole point of the website, to annotate a map with sailing, fishing and cruising information. I started in January reading books on how to code Javascript and PHP. I pulled code from the Address Field module, Geo Location field and the Views support from the Location module. I started with the Addressfield module and then built on top of it; the code is on GitHub. I can assure you that I'm not proud of it.
I've had a couple things to say about people not collaborating on mapping solutions in Drupal 7 at groups.drupal.org. However, since that time there have been several mapping and address modules released or integrated so I might return to something that is community supported like an Address Field and GeoField integration which I can add a custom module that extends it with client side javascript and Views support too.
_
Ah... i wondered, because proximity in d6 was quirky at best and I hadn't seen anything at all for d7 yet. Though you're not proud of the code, lol, well done-- after all, it's all about getting the job done in the end. Mapping is definitely an area that seems to have stalled out lately.
_
Don't be a Help Vampire - read and abide the forum guidelines.
If you find my assistance useful, please pay it forward to your fellow drupalers.
Mapping is definitely an area
That might have to do with a large amount of people using Location and it has only a straight port to Drupal 7 not leveraging Drupal 7 API features and Development Seed focusing on mapping but not with Drupal rather with frameworks like Node JS.
With huge websites like Yelp, Urban Spoon and Four Square I would think there is a demand for geolocation in Drupal. We are getting lost in several projects solving the same problems without collaboration. We are reinventing the wheel over and over never getting together to make a car or even a horse and buggy. Nevertheless, Geofield has come a long way in the past eight months.
Hopefully, Dries will create a geolocation initiative so that it gets developed in tandem with Drupal 8 integrating with GIS databases and Drupal API. If you look at the Google homepage, at least the default, mapping is 1/7th of what Google thinks is important -- a little less important than videos but more important than news and email. Location context is a huge influence in Google search results and perhaps should be treated as a context for when Butler is released.
VHF
VHF info handy for boat to shore contact
http://windwardguide.com/node/add/business
Also social network links could be useful.
VHF info handy for boat to
I think that I've kept it as simple as possible up to this point. I figure if a marina for example wants to put shore power information there doesn't need to be a separate field for it. They can just put it in the body description. If somebody really wants to make their listing useful then they can put the VHF information in there too. At some point if the site becomes popular I'll just create dynamic forms for different taxonomy terms so if they choose marina as a category they will get in the form questions about shore power, number of slips, max length, max depth, ect.
I want the site to be clean and functional without these types of enhancements first because they do add a layer of complexity. Do you have any suggestions on how to include social networking links? Should I just include a Share This widget or should I subscribe to the Janrain service to enable visitors to log in through the OpenID?
I added RDFa support for Google Local Reviews
I was wondering how Google adds the Local Review star ratings and discovered with Drupal 7 it was quite easy. I installed the RDFx module which has a user interface to add RDF markup to fields and followed Google's instructions on Local Reviews. For the Fivestar module I had to copy a theme function and test for node type so that it only marked up the business listings. For the address field I had to rewrite the Address Field modules template because there was a lot of markup involved. However, the email, URL, phone number and fax number can be added through the RDFa UII. That was it! It's not perfect and I'm curious how well Google will list the information now. You can see what Google sees by going to Google's Rich Snippets Testing Tool and putting in this link http://windwardguide.com/yacht-chandlers-2273 .
sub
sub
Congratulations!
@Adam: congratulations on achieving a great solution. I too have been going back & forth on here for months, trying to get advice on a definitive solution & with no luck as yet. I'd been working with the Location module & managed to display individual maps but would mush prefer multiple markers/listings on a single map as in your concept. I just have a couple of questions @this point:
1. Is your code intended to be an independent module or are the files intended to overwrite the Address Field module's default equivalents?
2. If I were to attempt to achieve something similar, would I have to delete my existing Location fields & instead, use the Postal Address Widget within my Content Type?
I'd like to see if I can get something similar to work with UK addresses but admit to still being slightly confused.
Many thanks in advance for any advise.
Frustrated without a solution
Frustrated without a solution I started reading lots of books on JavaScript and put something together based on that. I suggest that you follow the OpenLayers, OpenLayers Proximity, Geocode, Geofield and Addressfield modules.