Google maps and kml
Download
1 / 21

cs219KML - PowerPoint PPT Presentation


  • 325 Views
  • Uploaded on

Google Maps and KML Konstantinos Niktas COM SCI 219 Spring 2008 What is KML? KML is an XML file format “used to display geographic data in an Earth browser such as Google Earth, Google Maps, and Google Maps for mobile.”

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'cs219KML' - omer


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Google maps and kml l.jpg

Google Maps and KML

Konstantinos Niktas

COM SCI 219

Spring 2008


What is kml l.jpg
What is KML?

  • KML is an XML file format “used to display geographic data in an Earth browser such as Google Earth, Google Maps, and Google Maps for mobile.”

  • It’s XML so it follows a case-sensitive tag-based structure with nested elements and attributes.

  • Currently in v2.1. Google has v2.2 in beta right now.


More resources l.jpg
More Resources

  • KML is very extensive. It is almost a “mini programming/scripting” language itself with inheritance, types, and referencing to other files.

  • KML Documentation:http://code.google.com/apis/kml/documentation

  • KML Tutorial:http://code.google.com/apis/kml/documentation/kml_tut.html

  • KML 2.2 Beta:http://code.google.com/apis/kml/documentation/kml_tags_beta1.html


Kml elements l.jpg
KML Elements

  • Everything is an “Object”. (Everything inherits from the abstract “Object” KML element).

  • There are abstract elements

  • Everything is a tag:<Point>…</Point>

  • The more advanced tags are (usually) for Google Earth.


Google maps supports a subset of kml l.jpg

Google Maps supports…

Placemarks

Icons

Folders

Descriptive HTML

KMZ (compressed KML, including attached images)

Polylines and polygons

Styles for polylines and polygons, including color, fill, and opacity

Network links to import data dynamically

Ground overlays and screen overlays

Google Maps for Mobile supports

Placemarks with <name> elements

Google Maps supports a subset of KML…


Kml basics l.jpg
KML Basics

  • Structure

  • Placemarks/Points/Coordinates

  • Descriptive HTML

  • Ground Overlays

  • Paths/Polygons


Structure l.jpg

KML is in XML format

Usually everything contained in Document tag

Can have multiple Folder tags to separate different kinds of data. For example, one folder containing KML to show locations of pictures and another folder containing KML to show your path through the day.

Structure


Placemarks points coordinates l.jpg
Placemarks/Points/Coordinates

  • The easiest element in KML.

  • A simple point on the map. It only needs a name and a location. You can give it a description too.

  • Placemark tag defines the place mark

  • A Point tag within it defines where the Placemark will be.

  • A “type” called coordinate defines the Point.

  • Coordinates in KML are given long,lat. When typing in coordinates directly into Google Maps, they are given lat,long. Be careful!


Descriptive html l.jpg
Descriptive HTML

  • You’ll probably want to do HTML within the description tag.

  • You need to use the CDATA tag for this. If you don’t, your HTML’s tags need to use entity references:


Ground overlays l.jpg
Ground Overlays

  • You can add an image onto the map. (For example, some kind of thermal map or your own satellite imagery).

  • Uses the GroundOverlay tag.

  • Defined by an image file and a LatLonBox element.

  • There are also SuperOverlays. They let you use increasingly more detailed (larger) images as you zoom in. They are much more complicated requiring multiple KML files linked together. Explained here: http://code.google.com/apis/kml/documentation/kml_21tutorial.html#superoverlays


Paths l.jpg
Paths

  • Can define a path using the Placemark tag and the LineString tag instead of the Point tag.

  • Multiple coordinates. Again by long,lat,alt.

  • “extrude” tag makes the line go down to the ground

  • “tessellate” breaks each line into multiple pieces. Good for long lines so they don’t end up underground.

  • 0 = false, 1 = true


Polygons l.jpg

Defined by Polygon tag.

Can have an inner and an outer boundary

The boundaries are themselves defined by ‘LinearRing’ elements.

altitudeMode allows the polygons’ lines’ altitudes to be ‘absolute’ to sea level, ‘relativeToGround’, or ‘clampToGround’.

Polygons


Advanced kml l.jpg
Advanced KML

  • MIME Types

  • Styles

  • Screen Overlays

  • Network Links


Mime type l.jpg
MIME Type

  • KML Servers must follow certain rules

  • Must return response code of HTTP 200

  • The type itself is:application/vnd.google-earth.kml+xml

  • Can set the type in PHP with: header('Content-type: application/vnd.google-earth.kml+xml');

  • Body must contain valid KML data and the XML declaration:<?xml version="1.0" encoding="UTF-8"?>


Styles l.jpg
Styles

  • Similar to CSS/HTML styles.

  • In a Style tag. Each style tag can have multiple styles within it: LineStyle, PolyStyle, ColorStyle, etc.

  • The tag has an “id” so it can be referenced within a file or from another. (A Global KML Style file perhaps?)

  • Add a styleUrl element to use a style.

  • HW2 could have different icons based on content? A site that grabs all the Google Map icons:http://www.visual-case.it/cgi-bin/vc/GMapsIcons.pl

  • To reference a style within the file:<styleUrl>#styleName</styleUrl>

  • Outside the file:<styleUrl>url#styleName</styleUrl>


Screen overlays l.jpg
Screen Overlays

  • Add an image to the Google Maps/Earth window.

  • Could be used for whatever purpose you like.

  • ScreenOverlay tag.

  • overlayXY and screenXY line up the image to the actual map

  • In this example, (0,1) (in fractions) means 0% of x (all the way to the left) and 100% of y (all the way to the top). The upper-left of the image is lined up with the upper-left of the map. The unit can also be determined by pixels.

  • Size tag (obviously) controls size of the image. 0 means to maintain aspect ratio, -1 indicate to use native dimension. Using some other value makes the image that value. For example 0.2 with units on fraction makes the image take up 20% of that dimension.


Network links l.jpg
Network Links

  • Allows importing of KML, KMZ, and image files for ground/screen overlays.

  • Local or remote file

  • Uses a Link tag

  • Good way to split up large KML file into much smaller KML files. More manageable.

  • More interesting feature: can use scripts to generate KML data on the fly. (PHP, Perl, etc.)

  • Usually uni-direction data flow (server to map) but when using “viewRefreshMode”, the map can pass the script information on what is being viewed (the LatLon box). Google Maps/Earth will call the script with a BBOX parameter. Look at the KML Tutorial for more information.


Expert kml l.jpg
Expert KML

  • Time/Animation

  • Various “Mashups”


Time animation l.jpg
Time/Animation

  • We can use the TimeStamp and TimeSpan elements to add time information to any element that inherits from the Feature abstract element: NetworkLink, Placemark, ScreenOverlay, GroundOverlay, Folder, and Document.

  • TimeStamp has the element “when” inside it. A single point in time.

  • TimeSpan has two possible elements: “begin” and “end”. We can have an unbounded TimeSpan by not including “end”.

  • Times are in many possible forms: YYYY, YYYY-MM, YYYY-MM-DD, etc. (can include specific hours, minutes, time zones, etc.)

  • In Google Earth, when loading a KML/KMZ file that contains TimeStamps & TimeSpans, a time slider will appear along the top allowing an animation of the data.

  • Add the tags to your Placemarks, overlays, or whatever else you want. (As long as it’s a Feature).

  • The KML data will act like there is no time data if it is loaded into Google Maps. (Google Earth feature only).


Mashups and others l.jpg
“Mashups” and Others

  • Torch Relay: http://maps.google.com/help/maps/torchrelay/

  • Headline Map:http://headlinemap.com/

  • Placeopedia:http://www.placeopedia.com/

  • Super Skydive!http://www.superskydive.nl/skydive/amstmaren1


Slide21 l.jpg
End

  • KML Documentation:http://code.google.com/apis/kml/documentation

  • KML Tutorial:http://code.google.com/apis/kml/documentation/kml_tut.html

  • KML 2.2 Beta:http://code.google.com/apis/kml/documentation/kml_tags_beta1.html

  • For my example KML and PHP files, check out: http://leonia.cens.ucla.edu/~cs219kn/kml/


ad