c o s u g i 2 0 1 1 p h o e n i x, a r i z o n a mapping your library with web services and google...
TRANSCRIPT
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Mapping your library with Web Services and Google
MapsJohn Wohlers
Waubonsee Community College
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Technologies Used SirsiDynix Web Services API SirsiDynix E-Library PHP MySQL Google Maps API V3 Google Earth QR Codes Adobe Photoshop / Fireworks
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Drawing the map
Scan floor plan Use layers to trace
– Vector drawing– Opacity
Permanent fixtures Remove scanned image No text or logos
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
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
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Embellish your map
Add persistent text– Room Numbers– Descriptors
Add logo Flourishes
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Preparing the map
Download & Install MapTiler– http://www.maptiler.org
Geo locate your map image– http://www.getlatlon.com/– Google Earth– Handheld GPS
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Tiling the Map
Location Format: North South East West
– 41.66487457668102 41.66385936458253 -88.50639149534651 -88.50750234162167
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Testing the tiles
Test in browser– googlemaps.html– version 2 API
Make adjustmentsif needed and re-export
Copy tiles to web server
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Getting Fancy
Item location using SirsiDynix Web Services
QR Codes You are here
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
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
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Add Service Client ID
Symphony Web Services Admin Client ID
– Google Maps– Web Services– No license
Custom Client ID’s not retained during upgrades as of 3.0
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Web Services in PHP
PHP Modules & Libraries – PHP SOAP module– WSDLProxyGenerator
Bug fix required
Define header Create client “Try / catch”
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Title Lookup
Create lookup request Perform lookup
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
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
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Schema
“Locations “ table
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Location Data
Google Earth– Map overlay
Draw regions using “Add Polygon”– Export to KML
Locate markers via “Add Placemark”– Export to KML
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Physical Location Lookup
Convert LC Call to sortable– E185.61 .C6970 = E 0185.61C.6970 .0000
LC Sort library (‘LC_sortable.php’) MySQL query
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
JavaScript
Define tile boundaries Create new
google.maps.ImageMapType Create new map object Overlay ImageMapType Marker JavaScript
– Dynamically generated by PHP
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Enhancing eLibrary
Copy “dispholdings.h” to Pages_custom/Elib_revD
Include custom map.h file
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
eLibrary - Map.h
Custom HTML / JavaScript– eLibrary uses Prototype JavaScript
framework
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
The End Result: New Books
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
The End Result: Stacks
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
The End Result: Reserves
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
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
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
WSDL Proxy PHP library
WSDL Proxy– http://www.phpbuilder.com/columns/ada
m_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 */
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Email: [email protected] Instant Messenger: cap60552 Twitter: cap60552 Facebook: http://www.facebook.com/wohlers
In person at the conference
Questions?
C O S U G I 2 0 1 1 P H O E N I X, A R I Z O N A
Why type it…