Introduction to Geographic Information Systems by Mike ZielinskiDefinition of GISExamples of GISHistory of GISDemosGoogle codeSample CodeMore CodeGeolocatingWikimapiaXML formatXML Parser in C#Other Capabilities of WikimapiaCan be used with Google Maps and Google WorldSpatial DatabasesSpatial TypesUse of typesReferencesIntroduction to Geographic Information SystemsbyMike ZielinskiDefinition of GIS•Stores geographic locations and attributes about the location.•Able to add information•Edit information•Examples terrain information, disease information, tree informationExamples of GIS•Google Earth•Google Maps•CGIS – First Computerized GIS•ArcGIS-Current commercial GIS•WikimapiaHistory of GIS•First were cave paintings showing where animals where located•First known analytic use was cholera outbreak in London in 1854 when Dr. John Snow used a map to figure out how to stop the outbreakDemos•Google Maps •WikimapiaGoogle code•Need key and a domain to embed in web site•Uses JavascriptSample Code•<script src="http://maps.google.com/maps?file=api&v=2.x&key=key" type="text/javascript"></script> • <script type="text/javascript"> • • var map = null;• var geocoder = null;• • function initialize() {• if (GBrowserIsCompatible()) {• map = new GMap2(document.getElementById("map_canvas"));• map.setCenter(new GLatLng(37.4419, -122.1419), 13);• }• }• • </script>More Code•<body onload="initialize()" onunload="GUnload()">• <form id="form1" runat="server">• <div>• <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>• <asp:Button ID="Button1"• runat="server" Text="Button" • onclientclick="showAddress();return false" • UseSubmitBehavior="True" />• </div>• <br />• <div id="map_canvas" style="width:300px; height:500px"></div>• </form>•</body>Geolocating•function showAddress() {• geocoder = new GClientGeocoder();• var address=document.forms[0].TextBox1.value;• if (geocoder) {• geocoder.getLatLng(• address,• function(point) {• if (!point) {• alert(address + " not found");• } else {• map.setCenter(point, 13);• var marker = new GMarker(point);• map.addOverlay(marker);• marker.openInfoWindowHtml(address);• }• }WikimapiawikimapiaRequestStr = "http://api.wikimapia.org/?function=box&bbox=" + LonMin.Text + "," + LatMin.Text + "," + LonMax.Text + "," + LatMax.Text + "&key=key”The key can be gotten at wikimapia.org/apiReturns XML with places in the boxCan return other formats like JSON, KML and also gzip it.XML format<code class="xml"> <?xml version="1.0" encoding="utf-8"?> <?access-control allow="*"?> <folder language="en" version="1.0"> <!-- places folder, language and version --> <place id="22139"> <name>Golden Gate National Recreation Area: Land's End</name> <url>http://wikimapia.org/22139/</url> <!-- original url --> <location> <lon>-122.4997044</lon> <lat>37.7887088</lat> <north>37.788878</north> <south>37.78681</south> <east>-122.494082</east> <west>-122.508352</west> </location> <polygon> <point x="-122.5077081" y="37.7867756"/> <!-- points of polygon x - longitude, y - latitude --> <point x="-122.494082" y="37.78681"/> <point x="-122.4945974" y="37.7880983"/> <point x="-122.496593" y="37.7874539"/> <point x="-122.4973226" y="37.7875896"/> <point x="-122.4997044" y="37.7887088"/> <point x="-122.5002408" y="37.7885053"/> <point x="-122.5024295" y="37.788234"/> <point x="-122.5035238" y="37.7880305"/> <point x="-122.5060344" y="37.7882001"/> <point x="-122.5071502" y="37.7875048"/> <point x="-122.5071502" y="37.7875048"/> <point x="-122.5077081" y="37.7867756"/> </polygon> </place>XML Parser in C#•XmlReader wikiReader = XmlReader.Create(wikimapiaStream);• while(wikiReader.Read()) {• if (wikiReader.IsStartElement()){• if (wikiReader.IsEmptyElement) {• name = wikiReader.Name;• }• else{• name = wikiReader.Name;• wikiReader.Read();• if (wikiReader.IsStartElement() {• name = wikiReader.Name;• }• content = wikiReader.ReadString();• if (name == "name"){• ListBox1.Items.Add(new ListItem(content));• }•Other Capabilities of Wikimapia•Can Search •Can request URL for a place; need place id gotten from BoxCan be used with Google Maps and Google World•THE KML format is used by Google Earth•The KMZ format which is KML zipped can be used by Google Maps to add information about the area like Google Earth.Spatial Databases•Can add points, lines, and polygons to the database in SQLServer and MySql•I will talk about MySql but these are standards that have been implemented so should work for other databases.Spatial TypesPoint- POINT(12.5 13.1)LineString- LINESTRING( 0 0, 0.5 0.4, 20.1 20.5)Polygon- POLYGON( ………………………..)MULTIPOINT holds many points MULTILINESTRING holds many line stringsGEOMETRY can hold any typeUse of types•Create Table PointsAndLines (pt POINT,Line LINESTRING);•Insert Into PointsAndLines Values (GeomFromText(‘(POINT(1 1)’)),…);•Select AsText(pt) From PointsAndLines.References•Wikipedia-GIS•Wikimapia.org/api•
View Full Document