X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

80
Slippy Maps X (...and Scott Davis) 1

Transcript of X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Page 1: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Slippy MapsX

(...and Scott Davis)

1

Page 2: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

2

Page 3: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Scott Davis

3

Page 4: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

4

Page 5: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

It was the best of times,

it was the worst of times...

5

Page 6: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

6

Page 7: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Ajax

7

Page 8: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Static Mapsvs.

Slippy Maps

8

Page 9: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

9

Page 10: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

10

Page 11: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Who is the OGC?

The Open Geospatial Consortium http://www.opengis.org

The Open Geospatial Consortium, Inc. (OGC) is a non-profit, international, voluntary consensus standards organization that is leading the development of standards for geospatial and location based services.

11

Page 12: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Web Mapping Service (WMS)

http://localhost:8888/geoserver/wms?VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG:4326&BBOX=-126,20,-66,52&WIDTH=500&HEIGHT=500&LAYERS=us_states_poly&STYLES=&FORMAT=image/png&BGCOLOR=0xffffff&TRANSPARENT=FALSE&EXCEPTIONS=application/vnd.ogc.se_inimage

12

Page 13: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

13

Page 14: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Composition

• The WMS spec predates Google Maps– The intent is map composition, not slippy maps

– Each request is painstakingly assembled, lovingly rendered, and then thrown away

14

Page 15: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Decisions, Decisions

Slippy Map WMS

Built for speed Built for customization

Many tiles One big tile

Fixed zoom levels Variable zoom levels

Fixed map layers Variable map layers

Fixed image format Variable image format

15

Page 16: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

16

Page 17: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

17

Page 18: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Tiled

Tessellated

Mosaicked

18

Page 19: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

19

Page 20: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

20

Page 21: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

21

Page 22: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

• Google Maps is one of many free APIs

• Others:– http://developer.yahoo.com/maps/

• Offers Ajax, Flash, and GeoRSS

– http://dev.live.com/virtualearth/• Microsoft’s Offering

22

Page 23: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

• To begin, we need to sign up for a free Google Maps key– http://www.google.com/apis/maps/signup.html

23

Page 24: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

24

Page 25: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Example Page

25

Page 26: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Here is our first map

26

Page 27: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

• Adjusting our lat/lon and zoom level:– Zoom 0 == World– Zoom 20 == Street Level

function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(36.122487,-115.171181), 16); }}

27

Page 28: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Map, Round 2

28

Page 29: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

• Let’s add in some controls:

function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(36.122487,-115.171181), 16); map.addControl(new GLargeMapControl()) map.addControl(new GMapTypeControl()) }}

29

Page 30: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Map, Round 3

30

Page 31: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

• Finally, let’s add a marker and an info window:

var logoUrl = "http://www.theserverside.com/tt/skin/images/header_logotype.gif"var bcDesc = "<img src='" + logoUrl + "' width='321' height='72'/>"bcDesc += "<br />"bcDesc += "<a href='http://javasymposium.techtarget.com/lasvegas/index.html'>"bcDesc += "TheServerSide, Java Symposium"bcDesc += "</a><br />"bcDesc += "Las Vegas, NV"bcMarker.openInfoWindowHtml(bcDesc)

31

Page 32: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Map, Round 4

32

Page 33: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

OpenLayers

Pure JavaScript web client http://www.openlayers.org

In addition to supporting OGC layers Google Maps Yahoo Maps MS Virtual Earth (Local Live) WorldWind

33

Page 34: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

One Map…

34

Page 35: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

35

…One File

35

Page 36: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

36

Page 37: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Two Dimensional Mapsvs.

Three Dimensional Maps37

Page 38: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

38

Page 39: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

39

Page 40: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

40

Page 41: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Google Earth is able to show all kinds of images overlaid on the surface of the earth and is also a Web Map Service (WMS) client.

Google Earth supports managing three-dimensional Geospatial data through Keyhole Markup Language (KML).

http://en.wikipedia.org/wiki/Google_earth

41

Page 42: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

42

Page 43: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Data vs Pretty Pixels

Data services: WFS (Web Feature Service)

Portrayal services: WMS (Web Mapping Service)

43

Page 44: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

GetCapabilities

The first thing a program will do is ask the OGC server what data layers it has to offer This is called a GetCapabilities

request

http://localhost:8888/geoserver/wfs?service=WFS&version=1.0.0&request=GetCapabilities

44

Page 45: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

45

GetCapabilities And here is the response:

45

Page 46: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

DescribeFeatureType

Once you find a layer that looks interesting, you can ask the service to describe it:

http://localhost:8888/geoserver/wfs?version=1.0.0&service=WFS&request=DescribeFeatureType&typename=us_states_poly

46

Page 47: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

DescribeFeatureType

And here is the response:

47

Page 48: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

GetFeature

Finally, you can request the data layer:

http://localhost:8888/geoserver/wfs?version=1.0.0&service=WFS&request=GetFeature&typename=us_states_poly

48

Page 49: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

49

GetFeature And here is the response:

This is called GML(GeographyMarkupLanguage)

49

Page 50: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

(…Astoundingly boring, isn't it?)

50

Page 51: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

51

Page 52: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

52

Page 53: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

53

Page 54: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

54

Page 55: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

55

Page 56: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

56

Page 57: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

[The 2009 JavaOne] Scriptbowl had 5 contenders: Jython, Groovy, Clojure, Scala and JRuby. ...via twitter: "Groovy won the Script Bowl at #javaone thanks to the griffon team for the demo".

Here are a few snapshots of the demo: a mashup of NASA WorldWind and TwitterAPI, packaged as a Griffon application (Twittersphere):

57

Page 58: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

58

Page 59: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

NeoGeography[This term] arose with the concept of Web 2.0, around the increased public appeal of mapping and geospatial technologies that occurred with the release of such tools as "slippy maps" such as Google Maps, Google Earth, and also with the decreased cost of geolocated mobile devices such as GPS units.

http://en.wikipedia.org/wiki/Neogeography59

Page 60: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Ajax Mapsvs.

RIA Maps60

Page 61: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

61

Page 62: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

62

Page 63: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

63

Page 64: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

64

Page 65: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

65

Page 66: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

66

Page 67: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

67

Page 68: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

68

Page 69: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

69

Page 70: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

But wait -- there’s more!

70

Page 71: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

71

Page 72: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

72

Page 73: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

But wait -- there’s STILL more!

73

Page 74: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

74

Page 75: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

75

Page 76: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

76

Page 77: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

So, what have we learned?

77

Page 78: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Desktop - Browser

Deployment - Functionality

Flex - Air78

Page 79: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Slippy MapsX

(...and Scott Davis)

79

Page 80: X Slippy Maps - GOTO Conference 33. One Map ... WFS (Web Feature Service)

Scott Davis

Questions?Thanks for your time.

[email protected]

80