280 likes | 542 Views
Mapping your library with Web Services and Google Maps. By John Wohlers, Waubonsee Community College. Technologies Used. SirsiDynix Web Services API SirsiDynix E-Library PHP MySQL Google Maps API V3 Google Earth QR Codes Adobe Photoshop / Fireworks. Drawing the map. Scan floor plan
E N D
Mapping your library with Web Services and Google Maps By John Wohlers, Waubonsee Community College
Technologies Used • SirsiDynix Web Services API • SirsiDynix E-Library • PHP • MySQL • Google Maps API V3 • Google Earth • QR Codes • Adobe Photoshop / Fireworks
Drawing the map • Scan floor plan • Use layers to trace • Vector drawing • Opacity • Permanent fixtures • Remove scanned image • No text or logos
Adjust the alignment • Locate library • http://maps.google.com • Screenshot • Highest zoom (Level 20) • Import into layer • Orient map to screenshot • Adjust scale • Remove screenshot
Embellish your map • Add persistent text • Room Numbers • Descriptors • Add logo • Flourishes
Preparing the map • Download & Install MapTiler • http://www.maptiler.org • Geo locate your map image • http://www.getlatlon.com/ • Google Earth • Handheld GPS
Tiling the Map • Location Format: North South East West • 41.66487457668102 41.66385936458253 -88.50639149534651 -88.50750234162167
Testing the tiles • Test in browser • googlemaps.html • version 2 API • Make adjustmentsif needed and re-export • Copy tiles to web server
Getting Fancy • Item location using SirsiDynix Web Services • QR Codes • You are here
SirsiDynix Core Web Services • Standard Services • Catalog searches • Basic Item info • Security Services • Authentication • Patron Services • LICENCE REQUIRED • Patron account info • Renewals, Holds • Admin Services • System policies
Add Service Client ID • Symphony Web Services Admin • Client ID • Google Maps • Web Services • No license
Web Services in PHP • PHP Modules & Libraries • PHP SOAP module • WSDLProxyGenerator • Bug fix required • Define header • Create client • “Try / catch”
Title Lookup • Create lookup request • Perform lookup
Simple Database • MySQL • Stores location data • Symphony location code • Call number range • Lat / Long data • Marker data • Varchar for Lat / Long due to length • Example limited to four coordinates
Schema • “Locations “ table
Location Data • Google Earth • Map overlay • Draw regions using “Add Polygon” • Export to KML • Locate markers via “Add Placemark” • Export to KML
Physical Location Lookup • Convert LC Call to sortable • E185.61 .C6970 = E 0185.61C.6970 .0000 • LC Sort library (‘LC_sortable.php’) • MySQL query
JavaScript • Define tile boundaries • Create new google.maps.ImageMapType • Create new map object • Overlay ImageMapType • Marker JavaScript • Dynamically generated by PHP
Enhancing eLibrary • Copy “dispholdings.h” to Pages_custom/Elib_revD • Include custom map.h file
eLibrary - Map.h • Custom HTML / JavaScript • eLibrary uses Prototype JavaScript framework
Additional Resources • This presentation • http://bit.ly/h6Wt4b • Google Maps API Family • http://code.google.com/apis/maps/index.html • Google I/O 2009 Map HowTo • http://code.google.com/p/googleio2009-map/wiki/HowTo
WSDL Proxy PHP library • WSDL Proxy • http://www.phpbuilder.com/columns/adam_delves20060606.php3 • Patch: @@ -20,6 +20,7 @@ preg_match("/([a-z0-9_]+)\s+([a-z0-9_]+(\[\])?)(.*)?/si", $type, $matches); $type = $matches[1]; + $name = $matches[2]; switch($type) { /* if the data type is struct, we create a class with this name */
Questions? • Email: jwohlers@waubonsee.edu • Instant Messenger: cap60552 • Twitter: cap60552 • Facebook: http://www.facebook.com/wohlers • In person at the conference
Why type it… Contact Info Presentation & Files