r23773 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r23772‎ | r23773 | r23774 >
Date:07:16, 6 July 2007
Author:jeluf
Status:old
Tags:
Comment:
geoserver Extension.

Stores geographic information into a WFS server and draws maps using
WMS. The maps are interactive, using WFS and OpenLayers.
TODO: Write installation README. Check for hardcodes.
Modified paths:
  • /trunk/extensions/geoserver (added) (history)
  • /trunk/extensions/geoserver/CREDITS (added) (history)
  • /trunk/extensions/geoserver/README (added) (history)
  • /trunk/extensions/geoserver/SpecialWikimaps.php (added) (history)
  • /trunk/extensions/geoserver/SpecialWikimaps_body.php (added) (history)
  • /trunk/extensions/geoserver/WFS.php (added) (history)
  • /trunk/extensions/geoserver/featureCodes.conf (added) (history)
  • /trunk/extensions/geoserver/flag_blue.png (added) (history)
  • /trunk/extensions/geoserver/geoserver.php (added) (history)
  • /trunk/extensions/geoserver/wikimaps.css (added) (history)
  • /trunk/extensions/geoserver/wikimaps.js (added) (history)
  • /trunk/extensions/geoserver/zoom-minus-mini.png (added) (history)
  • /trunk/extensions/geoserver/zoom-plus-mini.png (added) (history)

Diff [purge]

Index: trunk/extensions/geoserver/wikimaps.js
@@ -0,0 +1,324 @@
 2+// The following OpenLayers classes are derived from OpenLayers, which is
 3+// available under the following license. These derived classes are available
 4+// under the same license
 5+/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license.
 6+ * See http://svn.openlayers.org/trunk/openlayers/release-license.txt
 7+ * for the full text of the license. */
 8+
 9+/**
 10+ * @class
 11+ *
 12+ * @requires OpenLayers/Control/PanZoom.js
 13+ */
 14+OpenLayers.Control.Zoom = OpenLayers.Class.create();
 15+OpenLayers.Control.Zoom.X = 4;
 16+OpenLayers.Control.Zoom.Y = 4;
 17+OpenLayers.Control.Zoom.prototype =
 18+ OpenLayers.Class.inherit( OpenLayers.Control.PanZoom, {
 19+
 20+ /** @type Array(...) */
 21+ buttons: null,
 22+
 23+ /** @type int */
 24+ zoomStopWidth: 18,
 25+
 26+ /** @type int */
 27+ zoomStopHeight: 11,
 28+
 29+ initialize: function() {
 30+ OpenLayers.Control.PanZoom.prototype.initialize.apply(this, arguments);
 31+ this.position = new OpenLayers.Pixel(OpenLayers.Control.Zoom.X,
 32+ OpenLayers.Control.Zoom.Y);
 33+ },
 34+
 35+ /**
 36+ * @param {OpenLayers.Map} map
 37+ */
 38+ setMap: function(map) {
 39+ OpenLayers.Control.PanZoom.prototype.setMap.apply(this, arguments);
 40+ this.map.events.register("changebaselayer", this, this.redraw);
 41+ },
 42+
 43+ /** clear the div and start over.
 44+ *
 45+ */
 46+ redraw: function() {
 47+ if (this.div != null) {
 48+ this.div.innerHTML = "";
 49+ }
 50+ this.draw();
 51+ },
 52+
 53+ /**
 54+ * @param {OpenLayers.Pixel} px
 55+ */
 56+ draw: function(px) {
 57+ // initialize our internal div
 58+ OpenLayers.Control.prototype.draw.apply(this, arguments);
 59+ px = this.position.clone();
 60+
 61+ // place the controls
 62+ this.buttons = new Array();
 63+
 64+ var sz = new OpenLayers.Size(18,18);
 65+ var centered = new OpenLayers.Pixel(px.x+sz.w/2, px.y);
 66+
 67+ this._addButton("zoomin", "zoom-plus-mini.png", centered.add(0, sz.h*1), sz);
 68+ this._addButton("zoomout", "zoom-minus-mini.png", centered.add(0, sz.h*2), sz);
 69+ return this.div;
 70+ },
 71+
 72+
 73+ CLASS_NAME: "OpenLayers.Control.Zoom"
 74+});
 75+/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license.
 76+ * See http://svn.openlayers.org/trunk/openlayers/release-license.txt
 77+ * for the full text of the license. */
 78+
 79+
 80+/**
 81+ * @class
 82+ *
 83+ * @requires OpenLayers/Layer/HTTPRequest.js
 84+ * @requires OpenLayers/Layer/WMS.js
 85+ * @requires OpenLayers/Layer/WMS/Untiled.js
 86+ */
 87+OpenLayers.Layer.WMS.MultiUntiled = OpenLayers.Class.create();
 88+OpenLayers.Layer.WMS.MultiUntiled.prototype =
 89+ OpenLayers.Class.inherit( OpenLayers.Layer.WMS.Untiled, {
 90+
 91+ /** which layers to use for which zoomlevel
 92+ * @type Array */
 93+ layerForLevel: null,
 94+
 95+
 96+ /**
 97+ * @constructor
 98+ *
 99+ * @param {String} name
 100+ * @param {String} url
 101+ * @param {Object} params
 102+ */
 103+ initialize: function(name, url, params, options) {
 104+ var newArguments = new Array();
 105+ //uppercase params
 106+ params = OpenLayers.Util.upperCaseObject(params);
 107+ newArguments.push(name, url, params, options);
 108+ OpenLayers.Layer.HTTPRequest.prototype.initialize.apply(this,
 109+ newArguments);
 110+ OpenLayers.Util.applyDefaults(
 111+ this.params,
 112+ OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS)
 113+ );
 114+
 115+ // unless explicitly set in options, if the layer is transparent,
 116+ // it will be an overlay
 117+ if ((options == null) || (options.isBaseLayer == null)) {
 118+ this.isBaseLayer = ((this.params.TRANSPARENT != "true") &&
 119+ (this.params.TRANSPARENT != true));
 120+ }
 121+ this.layerForLevel = new Array();
 122+ for ( i=0; i<=35; i++ ) {
 123+ this.layerForLevel[i] = this.params.LAYERS;
 124+ }
 125+ },
 126+
 127+ /**
 128+ *
 129+ */
 130+ destroy: function() {
 131+ this.layerForLevel = null;
 132+ OpenLayers.Layer.WMS.Untiled.prototype.destroy.apply(this, arguments);
 133+ },
 134+
 135+ /**
 136+ * @param {Object} obj
 137+ *
 138+ * @returns An exact clone of this OpenLayers.Layer.WMS.Untiled
 139+ * @type OpenLayers.Layer.WMS.Untiled
 140+ */
 141+ clone: function (obj) {
 142+
 143+ if (obj == null) {
 144+ obj = new OpenLayers.Layer.WMS.MultiUntiled(this.name,
 145+ this.url,
 146+ this.params,
 147+ this.options);
 148+ }
 149+
 150+ //get all additions from superclasses
 151+ obj = OpenLayers.Layer.WMS.Untiled.prototype.clone.apply(this, [obj]);
 152+
 153+ // copy/set any non-init, non-simple values here
 154+
 155+ return obj;
 156+ },
 157+
 158+
 159+ /** Once HTTPRequest has set the map, we can load the image div
 160+ *
 161+ * @param {OpenLayers.Map} map
 162+ */
 163+ setMap: function(map) {
 164+ OpenLayers.Layer.WMS.Untiled.prototype.setMap.apply(this, arguments);
 165+ },
 166+
 167+ /** When it is not a dragging move (ie when done dragging)
 168+ * reload and recenter the div.
 169+ *
 170+ * @param {OpenLayers.Bounds} bounds
 171+ * @param {Boolean} zoomChanged
 172+ * @param {Boolean} dragging
 173+ */
 174+ moveTo:function(bounds, zoomChanged, dragging) {
 175+
 176+ if (bounds == null) {
 177+ bounds = this.map.getExtent();
 178+ }
 179+
 180+ if ( zoomChanged ) {
 181+ this.params.LAYERS = this.layerForLevel[this.map.getZoom()];
 182+ }
 183+
 184+ OpenLayers.Layer.WMS.Untiled.prototype.moveTo.apply(this,arguments);
 185+ },
 186+
 187+
 188+ setLayerForLevel:function(layer,zoomlevel) {
 189+ this.layerForLevel[zoomlevel] = layer;
 190+ },
 191+
 192+ /** @final @type String */
 193+ CLASS_NAME: "OpenLayers.Layer.WMS.MultiUntiled"
 194+});
 195+
 196+// The following code, until the end of the file, is (c) 2007 Jens Frank
 197+// released to the Public Domain, or where this is not possible, under the
 198+// Metacarta BSD license as mentioned at the top.
 199+
 200+//var WikiMapsLon = 0;
 201+//var WikiMapsLat = 0;
 202+//var zoom = 4;
 203+var map, layer;
 204+var counter = 0;
 205+var clickCoord;
 206+var popup = null;
 207+var args = OpenLayers.Util.getArgs();
 208+
 209+if ( WikiMapsLon == undefined ) {
 210+ var WikiMapsLon = args.lon;
 211+}
 212+if ( WikiMapsLat == undefined ) {
 213+ var WikiMapsLat = args.lat;
 214+}
 215+if ( WikiMapsZoom == undefined ) {
 216+ var WikiMapsZoom = args.zoom;
 217+}
 218+
 219+
 220+
 221+
 222+function WikiMapsSetHTML(response) {
 223+ xmldom = OpenLayers.parseXMLString( response.responseText );
 224+ if ( xmldom.firstChild.firstChild.firstChild.tagName != 'gml:null' ) {
 225+ title = xmldom.getElementsByTagNameNS('http://www.openplans.org/topp','title')[0].firstChild.data;
 226+ displaytitle = xmldom.getElementsByTagNameNS('http://www.openplans.org/topp','displaytitle')[0].firstChild.data;
 227+ ptags = xmldom.getElementsByTagNameNS('http://www.openplans.org/topp','population');
 228+
 229+ if ( ptags.length != 0 && ptags[0].firstChild.data != 0 ) {
 230+ population = ptags[0].firstChild.data + " Inhabitants<br>";
 231+ } else {
 232+ population = "";
 233+ }
 234+ counter++;
 235+ URL = wgServer + wgArticlePath.replace( /\$1/, title );
 236+
 237+ HTML = "<div class=\"displaytitle\">" + displaytitle +
 238+ "</div><small class=\"popup\">" + population +
 239+ "<ul class=\"popup\"><li><a href=\"" + URL + "\">Open article</a></li><li><a href=\"" +
 240+ URL + "\" target=\"_new\">Open in a new window</a></li></ul></small>";
 241+ } else {
 242+ latabs = Math.abs( clickCoord.lat );
 243+ latdeg = Math.floor( latabs );
 244+ latmin = Math.round( ( latabs - latdeg ) * 60000 )/1000;
 245+ latns = clickCoord.lat < 0 ? "S" : "N";
 246+
 247+ lonabs = Math.abs( clickCoord.lon );
 248+ londeg = Math.floor( lonabs );
 249+ lonmin = Math.round( ( lonabs - londeg ) * 60000 )/1000;
 250+ lonew = clickCoord.lon < 0 ? "W" : "E";
 251+
 252+ HTML = "<div class=\"displaytitle\">?</div><small>" + latdeg + "&deg; " + latmin + " " + latns + " " +
 253+ londeg + "&deg; " + lonmin + " " + lonew + "</small>";
 254+ }
 255+ if ( wgFullscreen ) {
 256+ if ( popup != null ) {
 257+ popup.destroy();
 258+ }
 259+ popup = new OpenLayers.Popup( "popup", clickCoord, new OpenLayers.Size(250,100),HTML,true);
 260+ popup.setOpacity(0.8);
 261+ map.addPopup(popup);
 262+ } else {
 263+ $('selectbox').style.display='block';
 264+ $('selectboxbody').innerHTML = HTML;
 265+ }
 266+}
 267+
 268+function WikiMapsInit(){
 269+ OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
 270+ OpenLayers.ProxyHost = '/cgi-bin/proxy.cgi?url=';
 271+
 272+ var options = {
 273+ controls: [new OpenLayers.Control.MouseDefaults()]
 274+ };
 275+ map = new OpenLayers.Map( $('map'), options );
 276+ map.addControl(new OpenLayers.Control.Zoom());
 277+
 278+ WikiMapsInitLayers( map );
 279+
 280+ // Place the marker
 281+ var markers = new OpenLayers.Layer.Markers( "Markers" );
 282+ map.addLayer(markers);
 283+
 284+ var size = new OpenLayers.Size(16,16);
 285+ var offset = new OpenLayers.Pixel(-8,-16);
 286+ var icon = new OpenLayers.Icon(wgWikiMapsIcon,size,offset);
 287+ markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(WikiMapsLon, WikiMapsLat),icon));
 288+
 289+
 290+ // make the map clickable
 291+
 292+ map.events.register('click', map, function (e) {
 293+ $('selectbox').style.display='none';
 294+ var tolerance = new OpenLayers.Pixel(5, 5);
 295+ clickCoord = map.getLonLatFromPixel( new OpenLayers.Pixel( e.xy.x + tolerance.x, e.xy.y + tolerance.y) );
 296+ var min_px = new OpenLayers.Pixel(
 297+ e.xy.x - tolerance.x, e.xy.y + tolerance.y);
 298+ var max_px = new OpenLayers.Pixel(
 299+ e.xy.x + tolerance.x, e.xy.y - tolerance.y);
 300+ var min_ll = map.getLonLatFromPixel(min_px);
 301+ var max_ll = map.getLonLatFromPixel(max_px);
 302+ var url = wms.getFullRequestString({ SERVICE: "WFS", REQUEST: "GetFeature",
 303+ EXCEPTIONS: "application/vnd.ogc.se_xml",
 304+ BBOX: min_ll.lon+','+min_ll.lat+','+max_ll.lon+','+max_ll.lat,
 305+ MAXFEATURES: 20,
 306+ TYPENAME: wms.params.LAYERS,
 307+ });
 308+ url=url.replace( /SERVICE=WMS/, "SERVICE=WFS" ); // Somehow getFullRequestString ignores the explicit setting of SERVICE
 309+ OpenLayers.loadURL(url, '', this, WikiMapsSetHTML);
 310+ Event.stop(e);
 311+ });
 312+ map.setCenter(new OpenLayers.LonLat(WikiMapsLon, WikiMapsLat), WikiMapsZoom);
 313+ map.addControl( new OpenLayers.Control.LayerSwitcher() );
 314+ if ( !wgFullscreen ) {
 315+ map.addControl(new OpenLayers.Control.MousePosition());
 316+ function WikiMapsFullscreen() {
 317+ center = map.getCenter();
 318+ zoom = map.getZoom();
 319+ document.location = wgServer + wgArticlePath.replace( /\$1/, "Special:Wikimaps" )
 320+ + '?lon='+center.lon+'&lat='+center.lat+'&zoom='+zoom ;
 321+ }
 322+ $('wikimapsfullscreen').innerHTML='<a id="wikimapsfullscreenlink">Fullscreen</a>';
 323+ $('wikimapsfullscreenlink').onclick = WikiMapsFullscreen;
 324+ }
 325+}
Index: trunk/extensions/geoserver/zoom-plus-mini.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/geoserver/zoom-plus-mini.png
___________________________________________________________________
Added: svn:mime-type
1326 + application/octet-stream
Index: trunk/extensions/geoserver/flag_blue.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/geoserver/flag_blue.png
___________________________________________________________________
Added: svn:mime-type
2327 + application/octet-stream
Index: trunk/extensions/geoserver/WFS.php
@@ -0,0 +1,95 @@
 2+<?php
 3+/*
 4+ * Copyright 2007, Jens Frank <jeluf@wikimedia.org>
 5+ *
 6+ * This program is free software; you can redistribute it and/or modify
 7+ * it under the terms of the GNU General Public License as published by
 8+ * the Free Software Foundation; either version 2 of the License, or
 9+ * (at your option) any later version.
 10+ *
 11+ * This program is distributed in the hope that it will be useful,
 12+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
 13+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 14+ * GNU General Public License for more details.
 15+ *
 16+ * You should have received a copy of the GNU General Public License
 17+ * along with this program; if not, write to the Free Software
 18+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 19+ */
 20+
 21+if ( !defined( 'MEDIAWIKI' ) ) {
 22+ echo "Geoserver extension\n";
 23+ exit( 1 ) ;
 24+}
 25+
 26+
 27+class WFS {
 28+
 29+ function WFS( $url ) {
 30+ $this->url = $url;
 31+ }
 32+
 33+ function save( $name, $displaytitle, $major, $minor, $lat, $lon, $population ) {
 34+ $body = '
 35+ <wfs:Insert>
 36+ <topp:wikipedia>
 37+ <topp:title>'.$name.'</topp:title>
 38+ <topp:type_major>'.$major.'</topp:type_major>
 39+ <topp:type_minor>'.$minor.'</topp:type_minor>
 40+ <topp:displaytitle>'.$displaytitle.'</topp:displaytitle>
 41+ <topp:population>'.$population.'</topp:population>
 42+ <topp:geom>
 43+ <gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
 44+ <gml:coordinates decimal="." cs="," ts=" ">'."$lon,$lat".'</gml:coordinates>
 45+ </gml:Point>
 46+ </topp:geom>
 47+ </topp:wikipedia>
 48+ </wfs:Insert>';
 49+ $this->transaction( $body );
 50+ }
 51+
 52+ function delete( $name ) {
 53+ $body = '
 54+ <wfs:Delete typeName="topp:wikipedia">
 55+ <ogc:Filter>
 56+ <ogc:PropertyIsEqualTo>
 57+ <ogc:PropertyName>topp:title</ogc:PropertyName>
 58+ <ogc:Literal>'.$name.'</ogc:Literal>
 59+ </ogc:PropertyIsEqualTo>
 60+ </ogc:Filter>
 61+ </wfs:Delete>';
 62+ $this->transaction( $body );
 63+ }
 64+
 65+ function update( $name, $displaytitle, $major, $minor, $lat, $lon, $population ) {
 66+ $this->delete( $name );
 67+ $this->save( $name, $displaytitle, $major, $minor, $lat, $lon, $population );
 68+ }
 69+
 70+
 71+ private function transaction( $body ) {
 72+ global $wgWFSHost, $wgWFSPort, $wgWFSPath;
 73+ $result="";
 74+ $request='<wfs:Transaction service="WFS" version="1.0.0"
 75+ xmlns:wfs="http://www.opengis.net/wfs"
 76+ xmlns:topp="http://www.openplans.org/topp"
 77+ xmlns:gml="http://www.opengis.net/gml"
 78+ xmlns:ogc="http://www.opengis.net/ogc"
 79+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 80+ xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd http://www.openplans.org/topp http://localhost:8080/geoserver/wfs/DescribeFeatureType?typename=topp:wikipedia">'.$body.'
 81+ </wfs:Transaction>';
 82+ $fp = fsockopen($wgWFSHost, $wgWFSPort, $errno, $errstr, 3);
 83+ # TODO Check return code.
 84+
 85+ fwrite( $fp, "POST {$wgWFSPath} HTTP/1.0\r\nContent-Type: text/xml\r\nContent-Length: ".
 86+ strlen( $request )."\r\n\r\n".$request );
 87+ while (!feof($fp)) {
 88+ $result .= fgets($fp, 1024);
 89+ }
 90+ fclose( $fp );
 91+ # TODO Check return code.
 92+ return $result;
 93+ }
 94+}
 95+
 96+?>
Index: trunk/extensions/geoserver/geoserver.php
@@ -0,0 +1,155 @@
 2+<?php
 3+
 4+if ( !defined( 'MEDIAWIKI' ) ) {
 5+ echo "Geoserver extension\n";
 6+ exit( 1 ) ;
 7+}
 8+
 9+$wgExtensionCredits['parserhook']['geoserver'] = array(
 10+ 'name' => 'geoserver',
 11+ 'author' => 'Jens Frank',
 12+ 'url' => 'http://www.mediawiki.org/wiki/Extension:geoserver',
 13+ 'description' => 'Allows geotagging using the <nowiki><geo></nowiki> tag. Saves geodata in a WFS-T server, e.g. geoserver.',
 14+);
 15+
 16+
 17+$wgExtensionFunctions[] = "wfGeoserverExtension";
 18+
 19+/**
 20+ * Installer
 21+ */
 22+function wfGeoServerExtension () {
 23+ global $wgParser, $wgHooks ;
 24+ $wgParser->setTransparentTagHook ( 'geo' , 'parseGeo' ) ;
 25+# $wgHooks['ArticleSaveComplete'][] = 'articleDeleteGeo';
 26+ $wgHooks['ArticleDelete'][] = 'articleDeleteGeo';
 27+ $wgHooks['ArticleEditUpdatesDeleteFromRecentchanges'][] = 'articleSaveGeo';
 28+}
 29+
 30+global $wgAutoloadClasses;
 31+$wgAutoloadClasses['WFS'] = dirname(__FILE__) . '/WFS.php';
 32+
 33+require_once( dirname(__FILE__) . '/SpecialWikimaps.php' );
 34+/**
 35+ * Called whenever a <geo> needs to be parsed
 36+ *
 37+ * Return markup, but also a pointer to Map sources
 38+ */
 39+function parseGeo ( $text, $params, &$parser ) {
 40+ global $wgTitle, $action, $GeoserverParameters, $wgWikiMapsJS;
 41+ $latpat= '(-?[0-9.]*) *(([0-9.]+) *([0-9.]+)?)? *([NS])';
 42+ $lonpat= '(-?[0-9.]*) *(([0-9.]+) *([0-9.]+)?)? *([EW])';
 43+ $featcodepat = '(([AHLPRSTUV])\.([A-Z.]*))?';
 44+ $populationpat = '([0-9]*)?';
 45+ $showmappat = '(showmap)?';
 46+ preg_match( "/\\s*$latpat\\s*$lonpat\\s*$featcodepat\\s*$populationpat\\s*$showmappat/", $text, $matches );
 47+
 48+ $GeoserverParameters["lat"] = ($matches[5]=='S'? -1: 1) * ( $matches[1]+ $matches[3]/60.0 + $matches[4] / 3600 );
 49+ $GeoserverParameters["lon"] = ($matches[10]=='W'? -1: 1) * ( $matches[6]+ $matches[8]/60.0 + $matches[9] / 3600 );
 50+ $GeoserverParameters["type_major"] = $matches[12];
 51+ $GeoserverParameters["type_minor"] = $matches[13];
 52+ $GeoserverParameters["population"] = $matches[14];
 53+
 54+ $r = '';
 55+
 56+ if ( $matches[15] ) { // that's the "showmap" flag
 57+ global $wgOut, $wgOpenLayersScript, $wgWikiMapsIcon;
 58+ $defaultZoom = 10;
 59+ $majorMinor = $GeoserverParameters["type_major"].$GeoserverParameters["type_minor"];
 60+ if ( $majorMinor == 'PPPL' ) { // populated place
 61+ $defaultZoom=8;
 62+ } elseif ( $majorMinor == 'PPPLC' ) { // capital city
 63+ $defaultZoom=6;
 64+ }
 65+ $r = '<script src="' . $wgOpenLayersScript . '"></script>
 66+ <script src="'. $wgWikiMapsJS .'"></script>
 67+ <script type="text/javascript">
 68+ addOnloadHook(WikiMapsInit);
 69+ var WikiMapsLon = '.$GeoserverParameters["lon"].'; var WikiMapsLat = '.$GeoserverParameters["lat"].';
 70+ var WikiMapsMajor = "'.$GeoserverParameters["type_major"] .'";
 71+ var WikiMapsMinor = "'.$GeoserverParameters["type_minor"].'";
 72+ var WikiMapsZoom = '.$defaultZoom.';
 73+ ' . exportWikiMapsGlobals() . '
 74+ </script>
 75+ <div id="wikimaps"><div class="wikimapslabel" >Map</div><div class="wikimapslabel" id="wikimapsfullscreen">Fullscreen</div><br><div id="map" style="width:300px; height:300px;"></div><div id="selectbox" style="display:none;XXposition: absolute; XXtop:10em; XXleft:10em; width:300px;background:#02048C;color: white; padding-bottom:1px;"><div id="close" style="float:right; background:grey; color:black;font-size:small;margin:1px;padding-left:3px; padding-right:3px;pointer:hand;">X</div><span style="margin-left:3px;">Result</span><div id="selectboxbody" style="background:white; margin:1px; padding:3px; color:black;"></div></div></div>';
 76+ }
 77+
 78+ return $r;
 79+}
 80+
 81+function articleDeleteGeo ( $article ) {
 82+ $wfs = new WFS( "" );
 83+ $wfs->delete( $article->getTitle()->getDBkey() );
 84+ return true;
 85+}
 86+
 87+function articleSaveGeo ( $article ) {
 88+ global $GeoserverParameters, $wgTitle;
 89+ $wfs = new WFS( "" );
 90+
 91+ if ( $wgTitle->getNamespace() == NS_MAIN ) {
 92+ $result = $wfs->update( $wgTitle->getDBkey(), $wgTitle->getText(),
 93+ $GeoserverParameters["type_major"], $GeoserverParameters["type_minor"],
 94+ $GeoserverParameters["lat"], $GeoserverParameters["lon"],
 95+ $GeoserverParameters["population"] );
 96+ }
 97+ return true;
 98+}
 99+
 100+function exportWikiMapsGlobals() {
 101+ global $wgWikiMapsIcon;
 102+ return '
 103+ var wgWikiMapsIcon = "' . $wgWikiMapsIcon .'";
 104+ if ( wgFullscreen == undefined ) { var wgFullscreen = false; }' . generateWikiMapsLayersJS();
 105+}
 106+
 107+function generateWikiMapsLayersJS() {
 108+ global $wgWikiMapsLayers;
 109+ $WMSLayer = 'if ( WikiMapsLayers == undefined ) { var WikiMapsLayers = new Array(); }
 110+ WikiMapsLayers = WikiMapsLayers.concat( new Array( ';
 111+
 112+ $first = true;
 113+ foreach ( $wgWikiMapsLayers as $layer ) {
 114+ if ( isset( $layer["levels"] ) ) {
 115+ // this is an OpenLayers.Layer.WMS.MultiUntiled layer
 116+ } else {
 117+ // this is a normal OpenLayers.Layer.WMS layer
 118+ if ( $first ) { $first = false; } else { $WMSLayer .= ', ';}
 119+ $WMSLayer .= "{ name: '{$layer['name']}', url: '{$layer['url']}', options: {$layer['options']} }";
 120+ }
 121+ }
 122+ $WMSLayer .= "
 123+ ) );
 124+
 125+ WikiMapsInitLayersOld = WikiMapsInitLayers;
 126+ var WikiMapsInitLayers = function( map ) {
 127+ for ( i in WikiMapsLayers ) {
 128+ layer = new OpenLayers.Layer.WMS( WikiMapsLayers[i].name, WikiMapsLayers[i].url, WikiMapsLayers[i].options );
 129+ map.addLayer( layer );
 130+ }
 131+ wms = new OpenLayers.Layer.WMS.MultiUntiled( 'Wikipedia',
 132+ 'http://172.16.200.128:8080/geoserver/wms?VERSION=1.1.1&SERVICE=WMS',
 133+ {layers: 'topp:border,topp:wikicapitals', transparent: 'true', format: 'image/png'} );
 134+ wms.addOptions({isBaseLayer: false});
 135+ wms.setLayerForLevel( 'topp:border,topp:wikipedia', 6 );
 136+ wms.setLayerForLevel( 'topp:border,topp:wikipedia', 7 );
 137+ wms.setLayerForLevel( 'topp:border,topp:wikipedia', 8 );
 138+ wms.setLayerForLevel( 'topp:border,topp:wikipedia', 9 );
 139+ wms.setLayerForLevel( 'topp:border,topp:wikipedia', 10 );
 140+ wms.setLayerForLevel( 'topp:border,topp:wikipedia', 11 );
 141+ wms.setLayerForLevel( 'topp:border,topp:wikipedia', 12 );
 142+ wms.setLayerForLevel( 'topp:border,topp:wikipedia', 13 );
 143+ wms.setLayerForLevel( 'topp:border,topp:wikipedia', 14 );
 144+ wms.setLayerForLevel( 'topp:border,topp:wikipedia', 15 );
 145+ map.addLayer(wms);
 146+ if ( WikiMapsInitLayersOld != undefined ) {
 147+ WikiMapsInitLayersOld( map );
 148+ }
 149+ } ";
 150+ return $WMSLayer;
 151+}
 152+
 153+
 154+
 155+
 156+?>
Index: trunk/extensions/geoserver/SpecialWikimaps_body.php
@@ -0,0 +1,66 @@
 2+<?php
 3+
 4+class Wikimaps extends SpecialPage {
 5+
 6+ function Wikimaps() {
 7+ SpecialPage::SpecialPage( 'Wikimaps', 'wikimaps' );
 8+ }
 9+
 10+ function execute() {
 11+ global $wgOut, $wgOpenLayersScript, $wgWikiMapsJS, $wgArticlePath;
 12+ $wgOut->disable();
 13+ echo '
 14+
 15+
 16+<html xmlns="http://www.w3.org/1999/xhtml">
 17+ <head>
 18+ <style type="text/css">
 19+ #map {
 20+ width: 100%;
 21+ height: 100%;
 22+ border: 1px solid black;
 23+ }
 24+ #popup_contentDiv {
 25+ width:80%;
 26+ height:80%;
 27+ border: 1px solid blue;
 28+ position: fixed;
 29+ background: papayawhip;
 30+
 31+ }
 32+ small.popup {
 33+ margin-top: 0em;
 34+ }
 35+ ul.popup {
 36+ margin-top: 0em;
 37+ }
 38+ div.displaytitle {
 39+ border-bottom: solid 1px silver;
 40+ margin-bottom:6px;
 41+ }
 42+ </style>
 43+
 44+ <script src="' . $wgOpenLayersScript . '"></script>
 45+ <script src="' . $wgWikiMapsJS . '"></script>
 46+ <script type="text/javascript">
 47+ var wgFullscreen = true;
 48+ var wgServer="' . $wgServer . '";
 49+ var wgArticlePath="' . $wgArticlePath .'";
 50+ ' . exportWikiMapsGlobals() . '
 51+ </script>
 52+ </head>
 53+ <body onload="WikiMapsInit();">
 54+ <div id="map"></div>
 55+ <div id="selectbox" style="display:none;position: absolute; top:10em; left:10em; width:16em;background:#02048C;color: white;">
 56+ <div id="close" style="float:right; background:grey; color:black;font-size:small;margin:1px;padding-left:3px; padding-right:3px;pointer:hand;">X</div>
 57+ <span style="margin-left:3px;">Result</span>
 58+ <div id="selectboxbody" style="background:white; margin:1px; padding:3px; color:black;"></div>
 59+ </div>
 60+ </body>
 61+</html>
 62+
 63+';
 64+
 65+ }
 66+}
 67+
Index: trunk/extensions/geoserver/zoom-minus-mini.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/geoserver/zoom-minus-mini.png
___________________________________________________________________
Added: svn:mime-type
168 + application/octet-stream
Index: trunk/extensions/geoserver/SpecialWikimaps.php
@@ -0,0 +1,38 @@
 2+<?php
 3+if (!defined('MEDIAWIKI')) die();
 4+/**
 5+ * A Special Page extension to show full screen maps
 6+ *
 7+ * @addtogroup Extensions
 8+ *
 9+ * @author Jens Frank <jeluf@gmx.de>
 10+ * @copyright Copyright © 2007, Jens Frank
 11+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
 12+ */
 13+
 14+$wgExtensionFunctions[] = 'wfSpecialWikimaps';
 15+$wgExtensionCredits['specialpage'][] = array(
 16+ 'name' => 'Wikimaps',
 17+ 'author' => 'Jens Frank',
 18+ 'url' => 'http://meta.wikimedia.org/wiki/Wikimaps',
 19+ 'description' => 'Show maps',
 20+);
 21+
 22+global $wgWikimapsMessages;
 23+$wgWikimapsMessages = array();
 24+
 25+if ( !function_exists( 'extAddSpecialPage' ) ) {
 26+ require( dirname(__FILE__) . '/../ExtensionFunctions.php' );
 27+}
 28+extAddSpecialPage( dirname(__FILE__) . '/SpecialWikimaps_body.php', 'Wikimaps', 'Wikimaps' );
 29+
 30+function wfSpecialWikimaps() {
 31+ # Add messages
 32+ global $wgMessageCache, $wgWikimapsMessages, $wgSpecialPages;
 33+ foreach( $wgWikimapsMessages as $key => $value ) {
 34+ $wgMessageCache->addMessages( $wgWikimapsMessages[$key], $key );
 35+ }
 36+# print "<pre>"; print_r( $wgSpecialPages ); print "</pre>";
 37+}
 38+?>
 39+
Index: trunk/extensions/geoserver/wikimaps.css
@@ -0,0 +1 @@
 2+div.olControlMousePosition { background: white; }
Index: trunk/extensions/geoserver/CREDITS
@@ -0,0 +1,2 @@
 2+flag_blue.png from http://www.famfamfam.com/lab/icons/silk/
 3+ licensed as CC-by 2.5
Index: trunk/extensions/geoserver/README
@@ -0,0 +1,2 @@
 2+This is a module that updates a geoserver (http://www.geoserver.org/) using
 3+WFS-T transactions.
Index: trunk/extensions/geoserver/featureCodes.conf
@@ -0,0 +1,650 @@
 2+A.ADM administrative division
 3+A.ADM.1 first-order administrative division a primary administrative division of a country, such as a state in the United States
 4+A.ADM.2 second-order administrative division a subdivision of a first-order administrative division
 5+A.ADM.3 third-order administrative division a subdivision of a second-order administrative division
 6+A.ADM.4 fourth-order administrative division a subdivision of a third-order administrative division
 7+A.ADM.D administrative division an administrative division of a country, undifferentiated as to administrative level
 8+A.LTER leased area a tract of land leased by the United Kingdom from the People's Republic of China to form part of Hong Kong
 9+A.PCL political entity
 10+A.PCL.D dependent political entity
 11+A.PCL.F freely associated state
 12+A.PCL.I independent political entity
 13+A.PCL.IX section of independent political entity
 14+A.PCL.S semi-independent political entity
 15+A.PRSH parish an ecclesiastical district
 16+A.TERR territory
 17+A.ZN zone
 18+A.ZN.B buffer zone a zone recognized as a buffer between two nations in which military presence is minimal or absent
 19+H.AIRS seaplane landing area a place on a waterbody where floatplanes land and take off
 20+H.ANCH anchorage an area where vessels may anchor
 21+H.BAY bay a coastal indentation between two capes or headlands, larger than a cove but smaller than a gulf
 22+H.BAYS bays coastal indentations between two capes or headlands, larger than a cove but smaller than a gulf
 23+H.BGHT bight(s) an open body of water forming a slight recession in a coastline
 24+H.BNK bank(s) an elevation, typically located on a shelf, over which the depth of water is relatively shallow but sufficient for most surface navigation
 25+H.BNK.R stream bank a sloping margin of a stream channel which normally confines the stream to its channel on land
 26+H.BNK.X section of bank
 27+H.BOG bog(s) a wetland characterized by peat forming sphagnum moss, sedge, and other acid-water plants
 28+H.CAPG icecap a dome-shaped mass of glacial ice covering an area of mountain summits or other high lands; smaller than an ice sheet
 29+H.CHN channel the deepest part of a stream, bay, lagoon, or strait, through which the main current flows
 30+H.CHN.L lake channel(s) that part of a lake having water deep enough for navigation between islands, shoals, etc.
 31+H.CHN.M marine channel that part of a body of water deep enough for navigation through an area otherwise not suitable
 32+H.CHN.N navigation channel a buoyed channel of sufficient depth for the safe navigation of vessels
 33+H.CNFL confluence a place where two or more streams or intermittent streams flow together
 34+H.CNL canal an artificial watercourse
 35+H.CNL.A aqueduct a conduit used to carry water
 36+H.CNL.B canal bend a conspicuously curved or bent section of a canal
 37+H.CNL.D drainage canal an artificial waterway carrying water away from a wetland or from drainage ditches
 38+H.CNL.I irrigation canal a canal which serves as a main conduit for irrigation water
 39+H.CNL.N navigation canal(s) a watercourse constructed for navigation of vessels
 40+H.CNL.Q abandoned canal
 41+H.CNL.SB underground irrigation canal(s) a gently inclined underground tunnel bringing water for irrigation from aquifers
 42+H.CNL.X section of canal
 43+H.COVE cove(s) a small coastal indentation, smaller than a bay
 44+H.CRKT tidal creek(s) a meandering channel in a coastal wetland subject to bi-directional tidal currents
 45+H.CRNT current a horizontal flow of water in a given direction with uniform velocity
 46+H.CUTF cutoff a channel formed as a result of a stream cutting through a meander neck
 47+H.DCK dock(s) a waterway between two piers, or cut into the land for the berthing of ships
 48+H.DCKB docking basin a part of a harbor where ships dock
 49+H.DOMG icecap dome a comparatively elevated area on an icecap
 50+H.DPRG icecap depression a comparatively depressed area on an icecap
 51+H.DTCH ditch a small artificial watercourse dug for draining or irrigating the land
 52+H.DTCH.D drainage ditch a ditch which serves to drain the land
 53+H.DTCH.I irrigation ditch a ditch which serves to distribute irrigation water
 54+H.DTCH.M ditch mouth(s) an area where a drainage ditch enters a lagoon, lake or bay
 55+H.ESTY estuary a funnel-shaped stream mouth or embayment where fresh water mixes with sea water under tidal influences
 56+H.FISH fishing area a fishing ground, bank or area where fishermen go to catch fish
 57+H.FJD fjord a long, narrow, steep-walled, deep-water arm of the sea at high latitudes, usually along mountainous coasts
 58+H.FJDS fjords long, narrow, steep-walled, deep-water arms of the sea at high latitudes, usually along mountainous coasts
 59+H.FLLS waterfall(s) a perpendicular or very steep descent of the water of a stream
 60+H.FLLSX section of waterfall(s)
 61+H.FLTM mud flat(s) a relatively level area of mud either between high and low tide lines, or subject to flooding
 62+H.FLTT tidal flat(s) a large flat area of mud or sand attached to the shore and alternately covered and uncovered by the tide
 63+H.GLCR glacier(s) a mass of ice, usually at high latitudes or high elevations, with sufficient thickness to flow away from the source area in lobes, tongues, or masses
 64+H.GULF gulf a large recess in the coastline, larger than a bay
 65+H.GYSR geyser a type of hot spring with intermittent eruptions of jets of hot water and steam
 66+H.HBR harbor(s) a haven or space of deep water so sheltered by the adjacent land as to afford a safe anchorage for ships
 67+H.HBR.X section of harbor
 68+H.INLT inlet a narrow waterway extending into the land, or connecting a bay or lagoon with a larger body of water
 69+H.INLT.Q former inlet an inlet which has been filled in, or blocked by deposits
 70+H.LBED lake bed(s) a dried up or drained area of a former lake
 71+H.LGN lagoon a shallow coastal waterbody, completely or partly separated from a larger body of water by a barrier island, coral reef or other depositional feature
 72+H.LGN.S lagoons shallow coastal waterbodies, completely or partly separated from a larger body of water by a barrier island, coral reef or other depositional feature
 73+H.LGN.X section of lagoon
 74+H.LK lake a large inland body of standing water
 75+H.LK.C crater lake a lake in a crater or caldera
 76+H.LK.I intermittent lake
 77+H.LK.N salt lake an inland body of salt water with no outlet
 78+H.LK.NI intermittent salt lake
 79+H.LK.O oxbow lake a crescent-shaped lake commonly found adjacent to meandering streams
 80+H.LK.OI intermittent oxbow lake
 81+H.LK.S lakes large inland bodies of standing water
 82+H.LK.SB underground lake a standing body of water in a cave
 83+H.LK.SC crater lakes lakes in a crater or caldera
 84+H.LK.SI intermittent lakes
 85+H.LK.SN salt lakes inland bodies of salt water with no outlet
 86+H.LK.SNI intermittent salt lakes
 87+H.LK.X section of lake
 88+H.MFGN salt evaporation ponds diked salt ponds used in the production of solar evaporated salt
 89+H.MGV mangrove swamp a tropical tidal mud flat characterized by mangrove vegetation
 90+H.MOOR moor(s) an area of open ground overlaid with wet peaty soils
 91+H.MRSH marsh(es) a wetland dominated by grass-like vegetation
 92+H.MRSH.N salt marsh a flat area, subject to periodic salt water inundation, dominated by grassy salt-tolerant plants
 93+H.NRWS narrows a navigable narrow part of a bay, strait, river, etc.
 94+H.OCN ocean one of the major divisions of the vast expanse of salt water covering part of the earth
 95+H.OVF overfalls an area of breaking waves caused by the meeting of currents or by waves moving against the current
 96+H.PND pond a small standing waterbody
 97+H.PND.I intermittent pond
 98+H.PND.N salt pond a small standing body of salt water often in a marsh or swamp, usually along a seacoast
 99+H.PND.NI intermittent salt pond(s)
 100+H.PND.S ponds small standing waterbodies
 101+H.PND.SF fishponds ponds or enclosures in which fish are kept or raised
 102+H.PND.SI intermittent ponds
 103+H.PND.SN salt ponds small standing bodies of salt water often in a marsh or swamp, usually along a seacoast
 104+H.POOL pool(s) a small and comparatively still, deep part of a larger body of water such as a stream or harbor; or a small body of standing water
 105+H.POOL.I intermittent pool
 106+H.RCH reach a straight section of a navigable stream or channel between two bends
 107+H.RDGG icecap ridge a linear elevation on an icecap
 108+H.RDST roadstead an open anchorage affording less protection than a harbor
 109+H.RF reef(s) a surface-navigation hazard composed of consolidated material
 110+H.RF.C coral reef(s) a surface-navigation hazard composed of coral
 111+H.RF.X section of reef
 112+H.RPDS rapids a turbulent section of a stream associated with a steep, irregular stream bed
 113+H.RSV reservoir(s) an artificial pond or lake
 114+H.RSV.I intermittent reservoir
 115+H.RSV.T water tank a contained pool or tank of water at, below, or above ground level
 116+H.RVN ravine(s) a small, narrow, deep, steep-sided stream channel, smaller than a gorge
 117+H.SBKH sabkha(s) a salt flat or salt encrusted plain subject to periodic inundation from flooding or high tides
 118+H.SD sound a long arm of the sea forming a channel between the mainland and an island or islands; or connecting two larger bodies of water
 119+H.SEA sea a large body of salt water more or less confined by continuous land or chains of islands forming a subdivision of an ocean
 120+H.SHOL shoal(s) a surface-navigation hazard composed of unconsolidated material
 121+H.SILL sill the low part of an underwater gap or saddle separating basins, including a similar feature at the mouth of a fjord
 122+H.SPNG spring(s) a place where ground water flows naturally out of the ground
 123+H.SPNS sulphur spring(s) a place where sulphur ground water flows naturally out of the ground
 124+H.SPNT hot spring(s) a place where hot ground water flows naturally out of the ground
 125+H.STM stream a body of running water moving to a lower level in a channel on land
 126+H.STM.A anabranch a diverging branch flowing out of a main stream and rejoining it downstream
 127+H.STM.B stream bend a conspicuously curved or bent segment of a stream
 128+H.STM.C canalized stream a stream that has been substantially ditched, diked, or straightened
 129+H.STM.D distributary(-ies) a branch which flows away from the main stream, as in a delta or irrigation canal
 130+H.STM.H headwaters the source and upper part of a stream, including the upper drainage basin
 131+H.STM.I intermittent stream
 132+H.STM.IX section of intermittent stream
 133+H.STM.M stream mouth(s) a place where a stream discharges into a lagoon, lake, or the sea
 134+H.STM.Q abandoned watercourse a former stream or distributary no longer carrying flowing water, but still evident due to lakes, wetland, topographic or vegetation patterns
 135+H.STM.S streams bodies of running water moving to a lower level in a channel on land
 136+H.STM.SB lost river a surface stream that disappears into an underground channel, or dries up in an arid area
 137+H.STM.X section of stream
 138+H.STRT strait a relatively narrow waterway, usually narrower and less extensive than a sound, connecting two larger bodies of water
 139+H.SWMP swamp a wetland dominated by tree vegetation
 140+H.SYSI irrigation system a network of ditches and one or more of the following elements: water supply, reservoir, canal, pump, well, drain, etc.
 141+H.TNLC canal tunnel a tunnel through which a canal passes
 142+H.WAD wadi a valley or ravine, bounded by relatively steep banks, which in the rainy season becomes a watercourse; found primarily in North Africa and the Middle East
 143+H.WAD.B wadi bend a conspicuously curved or bent segment of a wadi
 144+H.WAD.J wadi junction a place where two or more wadies join
 145+H.WAD.M wadi mouth the lower terminus of a wadi where it widens into an adjoining floodplain, depression, or waterbody
 146+H.WAD.S wadies valleys or ravines, bounded by relatively steep banks, which in the rainy season become watercourses; found primarily in North Africa and the Middle East
 147+H.WAD.X section of wadi
 148+H.WHRL whirlpool a turbulent, rotating movement of water in a stream
 149+H.WLL well a cylindrical hole, pit, or tunnel drilled or dug down to a depth from which water, oil, or gas can be pumped or brought to the surface
 150+H.WLL.Q abandoned well
 151+H.WLL.S wells cylindrical holes, pits, or tunnels drilled or dug down to a depth from which water, oil, or gas can be pumped or brought to the surface
 152+H.WTLD wetland an area subject to inundation, usually characterized by bog, marsh, or swamp vegetation
 153+H.WTLD.I intermittent wetland
 154+H.WTRC watercourse a natural, well-defined channel produced by flowing water, or an artificial channel designed to carry flowing water
 155+H.WTRH waterhole(s) a natural hole, hollow, or small depression that contains water, used by man and animals, especially in arid areas
 156+L.AGRC agricultural colony a tract of land set aside for agricultural settlement
 157+L.AREA area a tract of land without homogeneous character or boundaries
 158+L.BSND drainage basin an area drained by a stream
 159+L.BSNP petroleum basin an area underlain by an oil-rich structural basin
 160+L.BTL battlefield a site of a land battle of historical importance
 161+L.CLG clearing an area in a forest with trees removed
 162+L.CMN common a park or pasture for community use
 163+L.CNS concession area a lease of land by a government for economic development, e.g., mining, forestry
 164+L.COLF coalfield a region in which coal deposits of possible economic value occur
 165+L.CONT continent : Europe, Africa, Oceania, North America, South America, Oceania,Antarctica
 166+L.CST coast a zone of variable width straddling the shoreline
 167+L.CTRB business center a place where a number of businesses are located
 168+L.DEVH housing development a tract of land on which many houses of similar design are built according to a development plan
 169+L.FLD field(s) an open as opposed to wooded area
 170+L.FLD.I irrigated field(s) a tract of level or terraced land which is irrigated
 171+L.GASF gasfield an area containing a subterranean store of natural gas of economic value
 172+L.GRAZ grazing area an area of grasses and shrubs used for grazing
 173+L.GVL gravel area an area covered with gravel
 174+L.INDS industrial area an area characterized by industrial activity
 175+L.LAND arctic land a tract of land in the Arctic
 176+L.LCTY locality a minor area or place of unspecified or mixed character and indefinite boundaries
 177+L.MILB military base a place used by an army or other armed service for storing arms and supplies, and for accommodating and training troops, a base from which operations can be initiated
 178+L.MNA mining area an area of mine sites where minerals and ores are extracted
 179+L.MVA maneuver area a tract of land where military field exercises are carried out
 180+L.NVB naval base an area used to store supplies, provide barracks for troops and naval personnel, a port for naval vessels, and from which operations are initiated
 181+L.OAS oasis(-es) an area in a desert made productive by the availability of water
 182+L.OILF oilfield an area containing a subterranean store of petroleum of economic value
 183+L.PEAT peat cutting area an area where peat is harvested
 184+L.PRK park an area, often of forested land, maintained as a place of beauty, or for recreation
 185+L.PRT port a place provided with terminal and transfer facilities for loading and discharging waterborne cargo or passengers, usually located in a harbor
 186+L.QCKS quicksand an area where loose sand with water moving through it may become unstable when heavy objects are placed at the surface, causing them to sink
 187+L.REP republic
 188+L.RES reserve a tract of public land reserved for future use or restricted as to use
 189+L.RES.A agricultural reserve a tract of land reserved for agricultural reclamation and/or development
 190+L.RES.F forest reserve a forested area set aside for preservation or controlled use
 191+L.RES.H hunting reserve a tract of land used primarily for hunting
 192+L.RES.N nature reserve an area reserved for the maintenance of a natural habitat
 193+L.RES.P palm tree reserve an area of palm trees where use is controlled
 194+L.RES.V reservation a tract of land set aside for aboriginal, tribal, or native populations
 195+L.RES.W wildlife reserve a tract of public land reserved for the preservation of wildlife
 196+L.RGN region an area distinguished by one or more observable physical or cultural characteristics
 197+L.RGN.E economic region a region of a country established for economic development or for statistical purposes
 198+L.RGN.L lake region a tract of land distinguished by numerous lakes
 199+L.RNGA artillery range a tract of land used for artillery firing practice
 200+L.SALT salt area a shallow basin or flat where salt accumulates after periodic inundation
 201+L.SNOW snowfield an area of permanent snow and ice forming the accumulation area of a glacier
 202+L.TRB tribal area a tract of land used by nomadic or other tribes
 203+L.ZZZZZ master source holdings list
 204+P.PPL populated place a city, town, village, or other agglomeration of buildings where people live and work
 205+P.PPL.A seat of a first-order administrative division seat of a first-order administrative division (PPLC takes precedence over PPLA)
 206+P.PPL.C capital of a political entity
 207+P.PPL.G seat of government of a political entity
 208+P.PPL.L populated locality an area similar to a locality but with a small group of dwellings or other buildings
 209+P.PPL.Q abandoned populated place
 210+P.PPL.R religious populated place a populated place whose population is largely engaged in religious occupations
 211+P.PPL.S populated places cities, towns, villages, or other agglomerations of buildings where people live and work
 212+P.PPL.W destroyed populated place a village, town or city destroyed by a natural disaster, or by war
 213+P.PPL.X section of populated place
 214+P.STLMT israeli settlement
 215+R.CSWY causeway a raised roadway across wet ground or shallow water
 216+R.CSWY.Q former causeway a causeway no longer used for transportation
 217+R.OILP oil pipeline a pipeline used for transporting oil
 218+R.PRMN promenade a place for public walking, usually along a beach front
 219+R.PTGE portage a place where boats, goods, etc., are carried overland between navigable waters
 220+R.RD road an open way with improved surface for transportation of animals, people and vehicles
 221+R.RD.A ancient road the remains of a road used by ancient cultures
 222+R.RD.B road bend a conspicuously curved or bent section of a road
 223+R.RD.CUT road cut an excavation cut through a hill or ridge for a road
 224+R.RD.JCT road junction a place where two or more roads join
 225+R.RJCT railroad junction a place where two or more railroad tracks join
 226+R.RR railroad a permanent twin steel-rail track on which freight and passenger cars move long distances
 227+R.RR.Q abandoned railroad
 228+R.RTE caravan route the route taken by caravans
 229+R.RYD railroad yard a system of tracks used for the making up of trains, and switching and storing freight cars
 230+R.ST street a paved urban thoroughfare
 231+R.STKR stock route a route taken by livestock herds
 232+R.TNL tunnel a subterranean passageway for transportation
 233+R.TNL.N natural tunnel a cave that is open at both ends
 234+R.TNL.RD road tunnel a tunnel through which a road passes
 235+R.TNL.RR railroad tunnel a tunnel through which a railroad passes
 236+R.TNL.S tunnels subterranean passageways for transportation
 237+R.TRL trail a path, track, or route used by pedestrians, animals, or off-road vehicles
 238+S.ADMF administrative facility a government building
 239+S.AGRF agricultural facility a building and/or tract of land used for improving agriculture
 240+S.AIR airport
 241+S.AIR.B airbase an area used to store supplies, provide barracks for air force personnel, hangars and runways for aircraft, and from which operations are initiated
 242+S.AIR.F airfield a place on land where aircraft land and take off; no facilities provided for the commercial handling of passengers and cargo
 243+S.AIR.H heliport a place where helicopters land and take off
 244+S.AIR.P airport a place where aircraft regularly land and take off, with runways, navigational aids, and major facilities for the commercial handling of passengers and cargo
 245+S.AIR.Q abandoned airfield
 246+S.AMTH amphitheater an oval or circular structure with rising tiers of seats about a stage or open space
 247+S.ANS ancient site a place where archeological remains, old structures, or cultural artifacts are located
 248+S.ARCH arch a natural or man-made structure in the form of an arch
 249+S.ASTR astronomical station a point on the earth whose position has been determined by observations of celestial bodies
 250+S.ASYL asylum a facility where the insane are cared for and protected
 251+S.ATHF athletic field a tract of land used for playing team sports, and athletic track and field events
 252+S.BCN beacon a fixed artificial navigation mark
 253+S.BDG bridge a structure erected across an obstacle such as a stream, road, etc., in order to carry roads, railroads, and pedestrians across
 254+S.BDG.Q ruined bridge a destroyed or decayed bridge which is no longer functional
 255+S.BLDG building(s) a structure built for permanent use, as a house, factory, etc.
 256+S.BP boundary marker a fixture marking a point along a boundary
 257+S.BRKS barracks a building for lodging military personnel
 258+S.BRKW breakwater a structure erected to break the force of waves at the entrance to a harbor or port
 259+S.BSTN baling station a facility for baling agricultural products
 260+S.BTYD boatyard a waterside facility for servicing, repairing, and building small vessels
 261+S.BUR burial cave(s) a cave used for human burials
 262+S.CARN cairn a heap of stones erected as a landmark or for other purposes
 263+S.CAVE cave(s) an underground passageway or chamber, or cavity on the side of a cliff
 264+S.CH church a building for public Christian worship
 265+S.CMP camp(s) a site occupied by tents, huts, or other shelters for temporary use
 266+S.CMP.L logging camp a camp used by loggers
 267+S.CMP.LA labor camp a camp used by migrant or temporary laborers
 268+S.CMP.MN mining camp a camp used by miners
 269+S.CMP.O oil camp a camp used by oilfield workers
 270+S.CMP.Q abandoned camp
 271+S.CMP.RF refugee camp a camp used by refugees
 272+S.CMTY cemetery a burial place or ground
 273+S.COMC communication center a facility, including buildings, antennae, towers and electronic equipment for receiving and transmitting information
 274+S.CRRL corral(s) a pen or enclosure for confining or capturing animals
 275+S.CSNO casino a building used for entertainment, especially gambling
 276+S.CSTL castle a large fortified building or set of buildings
 277+S.CSTM customs house a building in a port where customs and duties are paid, and where vessels are entered and cleared
 278+S.CTHSE courthouse a building in which courts of law are held
 279+S.CTRA atomic center a facility where atomic research is carried out
 280+S.CTRCM community center a facility for community recreation and other activities
 281+S.CTRF facility center a place where more than one facility is situated
 282+S.CTRM medical center a complex of health care buildings including two or more of the following: hospital, medical school, clinic, pharmacy, doctor's offices, etc.
 283+S.CTRR religious center a facility where more than one religious activity is carried out, e.g., retreat, school, monastery, worship
 284+S.CTRS space center a facility for launching, tracking, or controlling satellites and space vehicles
 285+S.CVNT convent a building where a community of nuns lives in seclusion
 286+S.DAM dam a barrier constructed across a stream to impound water
 287+S.DAM.Q ruined dam a destroyed or decayed dam which is no longer functional
 288+S.DAM.SB sub-surface dam a dam put down to bedrock in a sand river
 289+S.DARY dairy a facility for the processing, sale and distribution of milk or milk products
 290+S.DCKD dry dock a dock providing support for a vessel, and means for removing the water so that the bottom of the vessel can be exposed
 291+S.DCKY dockyard a facility for servicing, building, or repairing ships
 292+S.DIKE dike an earth or stone embankment usually constructed for flood or stream control
 293+S.DPOF fuel depot an area where fuel is stored
 294+S.EST estate(s) a large commercialized agricultural landholding with associated buildings and other facilities
 295+S.EST.B banana plantation an estate that specializes in the growing of bananas
 296+S.EST.C cotton plantation an estate specializing in the cultivation of cotton
 297+S.EST.O oil palm plantation an estate specializing in the cultivation of oil palm trees
 298+S.EST.R rubber plantation an estate which specializes in growing and tapping rubber trees
 299+S.EST.SG sugar plantation an estate that specializes in growing sugar cane
 300+S.EST.SL sisal plantation an estate that specializes in growing sisal
 301+S.EST.T tea plantation an estate which specializes in growing tea bushes
 302+S.EST.X section of estate
 303+S.FCL facility a building or buildings housing a center, institute, foundation, hospital, prison, mission, courthouse, etc.
 304+S.FNDY foundry a building or works where metal casting is carried out
 305+S.FRM farm a tract of land with associated buildings devoted to agriculture
 306+S.FRM.Q abandoned farm
 307+S.FRM.S farms tracts of land with associated buildings devoted to agriculture
 308+S.FRM.T farmstead the buildings and adjacent service areas of a farm
 309+S.FT fort a defensive structure or earthworks
 310+S.FY ferry a boat or other floating conveyance and terminal facilities regularly used to transport people and vehicles across a waterbody
 311+S.GATE gate a controlled access entrance or exit
 312+S.GDN garden(s) an enclosure for displaying selected plant or animal life
 313+S.GHSE guest house a house used to provide lodging for paying guests
 314+S.GOSP gas-oil separator plant a facility for separating gas from oil
 315+S.GRVE grave a burial site
 316+S.HERM hermitage a secluded residence, usually for religious sects
 317+S.HLT halting place a place where caravans stop for rest
 318+S.HSE house(s) a building used as a human habitation
 319+S.HSEC country house a large house, mansion, or chateau, on a large estate
 320+S.HSP hospital a building in which sick or injured, especially those confined to bed, are medically treated
 321+S.HSPC clinic a medical facility associated with a hospital for outpatients
 322+S.HSPD dispensary a building where medical or dental aid is dispensed
 323+S.HSPL leprosarium an asylum or hospital for lepers
 324+S.HSTS historical site a place of historical importance
 325+S.HTL hotel a building providing lodging and/or meals for the public
 326+S.HUT hut a small primitive house
 327+S.HUT.S huts small primitive houses
 328+S.INSM military installation a facility for use of and control by armed forces
 329+S.ITTR research institute a facility where research is carried out
 330+S.JTY jetty a structure built out into the water at a river mouth or harbor entrance to regulate currents and silting
 331+S.LDNG landing a place where boats receive or discharge passengers and freight, but lacking most port facilities
 332+S.LEPC leper colony a settled area inhabited by lepers in relative isolation
 333+S.LOCK lock(s) a basin in a waterway with gates at each end by means of which vessels are passed from one water level to another
 334+S.LTHSE lighthouse a distinctive structure exhibiting a major navigation light
 335+S.MAR marina a harbor facility for small boats, yachts, etc.
 336+S.MFG factory one or more buildings where goods are manufactured, processed or fabricated
 337+S.MFG.B brewery one or more buildings where beer is brewed
 338+S.MFG.C cannery a building where food items are canned
 339+S.MFG.CU copper works a facility for processing copper ore
 340+S.MFG.LM limekiln a furnace in which limestone is reduced to lime
 341+S.MFG.M munitions plant a factory where ammunition is made
 342+S.MFG.PH phosphate works a facility for producing fertilizer
 343+S.MFG.Q abandoned factory
 344+S.MFG.SG sugar refinery a facility for converting raw sugar into refined sugar
 345+S.MKT market a place where goods are bought and sold at regular intervals
 346+S.ML mill(s) a building housing machines for transforming, shaping, finishing, grinding, or extracting products
 347+S.ML.M ore treatment plant a facility for improving the metal content of ore by concentration
 348+S.ML.O olive oil mill a mill where oil is extracted from olives
 349+S.ML.SG sugar mill a facility where sugar cane is processed into raw sugar
 350+S.ML.SGQ former sugar mill a sugar mill no longer used as a sugar mill
 351+S.ML.SW sawmill a mill where logs or lumber are sawn to specified shapes and sizes
 352+S.ML.WND windmill a mill or water pump powered by wind
 353+S.ML.WTR water mill a mill powered by running water
 354+S.MN mine(s) a site where mineral ores are extracted from the ground by excavating surface pits and subterranean passages
 355+S.MN.AU gold mine(s) a mine where gold ore, or alluvial gold is extracted
 356+S.MN.C coal mine(s) a mine where coal is extracted
 357+S.MN.CR chrome mine(s) a mine where chrome ore is extracted
 358+S.MN.CU copper mine(s) a mine where copper ore is extracted
 359+S.MN.DT diatomite mine(s) a place where diatomaceous earth is extracted
 360+S.MN.FE iron mine(s) a mine where iron ore is extracted
 361+S.MNMT monument a commemorative structure or statue
 362+S.MN.N salt mine(s) a mine from which salt is extracted
 363+S.MN.NI nickel mine(s) a mine where nickel ore is extracted
 364+S.MN.PB lead mine(s) a mine where lead ore is extracted
 365+S.MN.PL placer mine(s) a place where heavy metals are concentrated and running water is used to extract them from unconsolidated sediments
 366+S.MN.Q abandoned mine
 367+S.MN.QR quarry(-ies) a surface mine where building stone or gravel and sand, etc. are extracted
 368+S.MN.SN tin mine(s) a mine where tin ore is extracted
 369+S.MOLE mole a massive structure of masonry or large stones serving as a pier or breakwater
 370+S.MSQE mosque a building for public Islamic worship
 371+S.MSSN mission a place characterized by dwellings, school, church, hospital and other facilities operated by a religious group for the purpose of providing charitable services and to propagate religion
 372+S.MSSN.Q abandoned mission
 373+S.MSTY monastery a building and grounds where a community of monks lives in seclusion
 374+S.MUS museum a building where objects of permanent interest in one or more of the arts and sciences are preserved and exhibited
 375+S.NOV novitiate a religious house or school where novices are trained
 376+S.NSY nursery(-ies) a place where plants are propagated for transplanting or grafting
 377+S.OBPT observation point a wildlife or scenic observation point
 378+S.OBS observatory a facility equipped for observation of atmospheric or space phenomena
 379+S.OB.SR radio observatory a facility equipped with an array of antennae for receiving radio waves from space
 380+S.OILJ oil pipeline junction a section of an oil pipeline where two or more pipes join together
 381+S.OILQ abandoned oil well
 382+S.OILR oil refinery a facility for converting crude oil into refined petroleum products
 383+S.OILT tank farm a tract of land occupied by large, cylindrical, metal tanks in which oil or liquid petrochemicals are stored
 384+S.OILW oil well a well from which oil may be pumped
 385+S.PAL palace a large stately house, often a royal or presidential residence
 386+S.PGDA pagoda a tower-like storied structure, usually a Buddhist shrine
 387+S.PIER pier a structure built out into navigable water on piles providing berthing for ships and recreation
 388+S.PKLT parking lot an area used for parking vehicles
 389+S.PMPO oil pumping station a facility for pumping oil through a pipeline
 390+S.PMPW water pumping station a facility for pumping water from a major well or through a pipeline
 391+S.PO post office a public building in which mail is received, sorted and distributed
 392+S.PP police post a building in which police are stationed
 393+S.PP.Q abandoned police post
 394+S.PRKGT park gate a controlled access to a park
 395+S.PRKHQ park headquarters a park administrative facility
 396+S.PRN prison a facility for confining prisoners
 397+S.PRN.J reformatory a facility for confining, training, and reforming young law offenders
 398+S.PRN.Q abandoned prison
 399+S.PS power station a facility for generating electric power
 400+S.PS.H hydroelectric power station a building where electricity is generated from water power
 401+S.PSTB border post a post or station at an international boundary for the regulation of movement of people and goods
 402+S.PSTC customs post a building at an international boundary where customs and duties are paid on goods
 403+S.PSTP patrol post a post from which patrols are sent out
 404+S.PYR pyramid an ancient massive structure of square ground plan with four triangular faces meeting at a point and used for enclosing tombs
 405+S.PYR.S pyramids ancient massive structures of square ground plan with four triangular faces meeting at a point and used for enclosing tombs
 406+S.QUAY quay a structure of solid construction along a shore or bank which provides berthing for ships and which generally provides cargo handling facilities
 407+S.RECG golf course a recreation field where golf is played
 408+S.RECR racetrack a track where races are held
 409+S.RHSE resthouse a structure maintained for the rest and shelter of travelers
 410+S.RKRY rookery a breeding place of a colony of birds or seals
 411+S.RLG religious site an ancient site of significant religious importance
 412+S.RLG.R retreat a place of temporary seclusion, especially for religious groups
 413+S.RNCH ranch(es) a large farm specializing in extensive grazing of livestock
 414+S.RSD railroad siding a short track parallel to and joining the main track
 415+S.RSGNL railroad signal a signal at the entrance of a particular section of track governing the movement of trains
 416+S.RSRT resort a specialized facility for vacation, health, or participation sports activities
 417+S.RSTN railroad station a facility comprising ticket office, platforms, etc. for loading and unloading train passengers and freight
 418+S.RSTN.Q abandoned railroad station
 419+S.RSTP railroad stop a place lacking station facilities where trains stop to pick up and unload passengers and freight
 420+S.RSTP.Q abandoned railroad stop
 421+S.RUIN ruin(s) a destroyed or decayed structure which is no longer functional
 422+S.SCH school building(s) where instruction in one or more branches of knowledge takes place
 423+S.SCH.A agricultural school a school with a curriculum focused on agriculture
 424+S.SCH.C college the grounds and buildings of an institution of higher learning
 425+S.SCH.M military school a school at which military science forms the core of the curriculum
 426+S.SCH.N maritime school a school at which maritime sciences form the core of the curriculum
 427+S.SHPF sheepfold a fence or wall enclosure for sheep and other small herd animals
 428+S.SHRN shrine a structure or place memorializing a person or religious concept
 429+S.SHSE storehouse a building for storing goods, especially provisions
 430+S.SLCE sluice a conduit or passage for carrying off surplus water from a waterbody, usually regulated by means of a sluice gate
 431+S.SNTR sanatorium a facility where victims of physical or mental disorders are treated
 432+S.SPA spa a resort area usually developed around a medicinal spring
 433+S.SPLY spillway a passage or outlet through which surplus water flows over, around or through a dam
 434+S.SQR square a broad, open, public area near the center of a town or city
 435+S.STBL stable a building for the shelter and feeding of farm animals, especially horses
 436+S.STDM stadium a structure with an enclosure for athletic games with tiers of seats for spectators
 437+S.STN station
 438+S.STN.B scientific research base a scientific facility used as a base from which research is carried out or monitored
 439+S.STN.C coast guard station a facility from which the coast is guarded by armed vessels
 440+S.STN.E experiment station a facility for carrying out experiments
 441+S.STN.F forest station a collection of buildings and facilities for carrying out forest management
 442+S.STN.I inspection station a station at which vehicles, goods, and people are inspected
 443+S.STN.M meteorological station a station at which weather elements are recorded
 444+S.STN.R radio station a facility for producing and transmitting information by radio waves
 445+S.STN.S satellite station a facility for tracking and communicating with orbiting satellites
 446+S.STN.W whaling station a facility for butchering whales and processing train oil
 447+S.STPS steps stones or slabs placed for ease in ascending or descending a steep slope
 448+S.TMB tomb(s) a structure for interring bodies
 449+S.TMPL temple(s) an edifice dedicated to religious worship
 450+S.TNKD cattle dipping tank a small artificial pond used for immersing cattle in chemically treated water for disease control
 451+S.TOWR tower a high conspicuous structure, typically much higher than its diameter
 452+S.TRIG triangulation station a point on the earth whose position has been determined by triangulation
 453+S.TRMO oil pipeline terminal a tank farm or loading facility at the end of an oil pipeline
 454+S.UNIV university An institution for higher learning with teaching and research facilities constituting a graduate school and professional schools that award master's degrees and doctorates and an undergraduate division that awards bachelor's degrees.
 455+S.USGE united states government establishment a facility operated by the United States Government in Panama
 456+S.VETF veterinary facility a building or camp at which veterinary services are available
 457+S.WALL wall a thick masonry structure, usually enclosing a field or building, or forming the side of a structure
 458+S.WALL.A ancient wall the remains of a linear defensive stone structure
 459+S.WEIR weir(s) a small dam in a stream, designed to raise the water level or to divert stream flow through a desired channel
 460+S.WHRF wharf(-ves) a structure of open rather than solid construction along a shore or a bank which provides berthing for ships and cargo-handling facilities
 461+S.WRCK wreck the site of the remains of a wrecked vessel
 462+S.WTRW waterworks a facility for supplying potable water through a water source and a system of pumps and filtration beds
 463+S.ZNF free trade zone an area, usually a section of a port, where goods may be received and shipped free of customs duty and of most customs regulations
 464+S.ZOO zoo a zoological garden or park where wild animals are kept for exhibition
 465+T.ASPH asphalt lake a small basin containing naturally occurring asphalt
 466+T.ATOL atoll(s) a ring-shaped coral reef which has closely spaced islands on it encircling a lagoon
 467+T.BAR bar a shallow ridge or mound of coarse unconsolidated material in a stream channel, at the mouth of a stream, estuary, or lagoon and in the wave-break zone along coasts
 468+T.BCH beach a shore zone of coarse unconsolidated sediment that extends from the low-water line to the highest reach of storm waves
 469+T.BCH.S beaches a shore zone of coarse unconsolidated sediment that extends from the low-water line to the highest reach of storm waves
 470+T.BDLD badlands an area characterized by a maze of very closely spaced, deep, narrow, steep-sided ravines, and sharp crests and pinnacles
 471+T.BLDR boulder field a high altitude or high latitude bare, flat area covered with large angular rocks
 472+T.BLHL blowhole(s) a hole in coastal rock through which sea water is forced by a rising tide or waves and spurted through an outlet into the air
 473+T.BLOW blowout(s) a small depression in sandy terrain, caused by wind erosion
 474+T.BNCH bench a long, narrow bedrock platform bounded by steeper slopes above and below, usually overlooking a waterbody
 475+T.BUTE butte(s) a small, isolated, usually flat-topped hill with steep sides
 476+T.CAPE cape a land area, more prominent than a point, projecting into the sea and marking a notable change in coastal direction
 477+T.CFT cleft(s) a deep narrow slot, notch, or groove in a coastal cliff
 478+T.CLDA caldera a depression measuring kilometers across formed by the collapse of a volcanic mountain
 479+T.CLF cliff(s) a high, steep to perpendicular slope overlooking a waterbody or lower area
 480+T.CNYN canyon a deep, narrow valley with steep sides cutting into a plateau or mountainous area
 481+T.CONE cone(s) a conical landform composed of mud or volcanic material
 482+T.CRDR corridor a strip or area of land having significance as an access way
 483+T.CRQ cirque a bowl-like hollow partially surrounded by cliffs or steep slopes at the head of a glaciated valley
 484+T.CRQ.S cirques bowl-like hollows partially surrounded by cliffs or steep slopes at the head of a glaciated valley
 485+T.CRTR crater(s) a generally circular saucer or bowl-shaped depression caused by volcanic or meteorite explosive action
 486+T.CUET cuesta(s) an asymmetric ridge formed on tilted strata
 487+T.DLTA delta a flat plain formed by alluvial deposits at the mouth of a stream
 488+T.DPR depression(s) a low area surrounded by higher land and usually characterized by interior drainage
 489+T.DSRT desert a large area with little or no vegetation due to extreme environmental conditions
 490+T.DUNE dune(s) a wave form, ridge or star shape feature composed of sand
 491+T.DVD divide a line separating adjacent drainage basins
 492+T.ERG sandy desert an extensive tract of shifting sand and sand dunes
 493+T.FAN fan(s) a fan-shaped wedge of coarse alluvium with apex merging with a mountain stream bed and the fan spreading out at a low angle slope onto an adjacent plain
 494+T.FORD ford a shallow part of a stream which can be crossed on foot or by land vehicle
 495+T.FSR fissure a crack associated with volcanism
 496+T.GAP gap a low place in a ridge, not used for transportation
 497+T.GRGE gorge(s) a short, narrow, steep-sided section of a stream valley
 498+T.HDLD headland a high projection of land extending into a large body of water beyond the line of the coast
 499+T.HLL hill a rounded elevation of limited extent rising above the surrounding land with local relief of less than 300m
 500+T.HLL.S hills rounded elevations of limited extent rising above the surrounding land with local relief of less than 300m
 501+T.HMCK hammock(s) a patch of ground, distinct from and slightly above the surrounding plain or wetland. Often occurs in groups
 502+T.HMDA rock desert a relatively sand-free, high bedrock plateau in a hot desert, with or without a gravel veneer
 503+T.INTF interfluve a relatively undissected upland between adjacent stream valleys
 504+T.ISL island a tract of land, smaller than a continent, surrounded by water at high water
 505+T.ISL.F artificial island an island created by landfill or diking and filling in a wetland, bay, or lagoon
 506+T.ISL.M mangrove island a mangrove swamp surrounded by a waterbody
 507+T.ISL.S islands tracts of land, smaller than a continent, surrounded by water at high water
 508+T.ISL.T land-tied island a coastal island connected to the mainland by barrier beaches, levees or dikes
 509+T.ISL.X section of island
 510+T.ISTH isthmus a narrow strip of land connecting two larger land masses and bordered by water
 511+T.KRST karst area a distinctive landscape developed on soluble rock such as limestone characterized by sinkholes, caves, disappearing streams, and underground drainage
 512+T.LAVA lava area an area of solidified lava
 513+T.LEV levee a natural low embankment bordering a distributary or meandering stream; often built up artificially to control floods
 514+T.MESA mesa(s) a flat-topped, isolated elevation with steep slopes on all sides, less extensive than a plateau
 515+T.MND mound(s) a low, isolated, rounded hill
 516+T.MRN moraine a mound, ridge, or other accumulation of glacial till
 517+T.MT mountain an elevation standing high above the surrounding area with small summit area, steep slopes and local relief of 300m or more
 518+T.MT.S mountains a mountain range or a group of mountains or high ridges
 519+T.NKM meander neck a narrow strip of land between the two limbs of a meander loop at its narrowest point
 520+T.NTK nunatak a rock or mountain peak protruding through glacial ice
 521+T.NTKS nunataks rocks or mountain peaks protruding through glacial ice
 522+T.PAN pan a near-level shallow, natural depression or basin, usually containing an intermittent lake, pond, or pool
 523+T.PAN.S pans a near-level shallow, natural depression or basin, usually containing an intermittent lake, pond, or pool
 524+T.PASS pass a break in a mountain range or other high obstruction, used for transportation from one side to the other [See also gap]
 525+T.PEN peninsula an elongate area of land projecting into a body of water and nearly surrounded by water
 526+T.PEN.X section of peninsula
 527+T.PK peak a pointed elevation atop a mountain, ridge, or other hypsographic feature
 528+T.PKS peaks pointed elevations atop a mountain, ridge, or other hypsographic features
 529+T.PLAT plateau an elevated plain with steep slopes on one or more sides, and often with incised streams
 530+T.PLAT.X section of plateau
 531+T.PLDR polder an area reclaimed from the sea by diking and draining
 532+T.PLN plain(s) an extensive area of comparatively level to gently undulating land, lacking surface irregularities, and usually adjacent to a higher area
 533+T.PLN.X section of plain
 534+T.PROM promontory(-ies) a bluff or prominent hill overlooking or projecting into a lowland
 535+T.PT point a tapering piece of land projecting into a body of water, less prominent than a cape
 536+T.PT.S points tapering pieces of land projecting into a body of water, less prominent than a cape
 537+T.RDGB beach ridge a ridge of sand just inland and parallel to the beach, usually in series
 538+T.RDGE ridge(s) a long narrow elevation with steep sides, and a more or less continuous crest
 539+T.REG stony desert a desert plain characterized by a surface veneer of gravel and stones
 540+T.RK rock a conspicuous, isolated rocky mass
 541+T.RK.FL rockfall an irregular mass of fallen rock at the base of a cliff or steep slope
 542+T.RK.S rocks conspicuous, isolated rocky masses
 543+T.SAND sand area a tract of land covered with sand
 544+T.SBED dry stream bed a channel formerly containing the water of a stream
 545+T.SCRP escarpment a long line of cliffs or steep slopes separating level surfaces above and below
 546+T.SDL saddle a broad, open pass crossing a ridge or between hills or mountains
 547+T.SHOR shore a narrow zone bordering a waterbody which covers and uncovers at high and low water, respectively
 548+T.SINK sinkhole a small crater-shape depression in a karst area
 549+T.SLID slide a mound of earth material, at the base of a slope and the associated scoured area
 550+T.SLP slope(s) a surface with a relatively uniform slope angle
 551+T.SPIT spit a narrow, straight or curved continuation of a beach into a waterbody
 552+T.SPUR spur(s) a subordinate ridge projecting outward from a hill, mountain or other elevation
 553+T.TAL talus slope a steep concave slope formed by an accumulation of loose rock fragments at the base of a cliff or steep slope
 554+T.TRGD interdune trough(s) a long wind-swept trough between parallel longitudinal dunes
 555+T.TRR terrace a long, narrow alluvial platform bounded by steeper slopes above and below, usually overlooking a waterbody
 556+T.UPLD upland an extensive interior region of high land with low to moderate surface relief
 557+T.VAL valley an elongated depression usually traversed by a stream
 558+T.VAL.G hanging valley a valley the floor of which is notably higher than the valley or shore to which it leads; most common in areas that have been glaciated
 559+T.VAL.S valleys elongated depressions usually traversed by a stream
 560+T.VAL.X section of valley
 561+T.VLC volcano a conical elevation composed of volcanic materials with a crater at the top
 562+U.APNU apron a gentle slope, with a generally smooth surface, particularly found around groups of islands and seamounts
 563+U.ARCU arch a low bulge around the southeastern end of the island of Hawaii
 564+U.ARRU arrugado an area of subdued corrugations off Baja California
 565+U.BDLU borderland a region adjacent to a continent, normally occupied by or bordering a shelf, that is highly irregular with depths well in excess of those typical of a shelf
 566+U.BKSU banks elevations, typically located on a shelf, over which the depth of water is relatively shallow but sufficient for safe surface navigation
 567+U.BNCU bench a small terrace
 568+U.BNKU bank an elevation, typically located on a shelf, over which the depth of water is relatively shallow but sufficient for safe surface navigation
 569+U.BSNU basin a depression more or less equidimensional in plan and of variable extent
 570+U.CDAU cordillera an entire mountain system including the subordinate ranges, interior plateaus, and basins
 571+U.CNSU canyons relatively narrow, deep depressions with steep sides, the bottom of which generally has a continuous slope
 572+U.CNYU canyon a relatively narrow, deep depression with steep sides, the bottom of which generally has a continuous slope
 573+U.CRSU continental rise a gentle slope rising from oceanic depths towards the foot of a continental slope
 574+U.DEPU deep a localized deep area within the confines of a larger feature, such as a trough, basin or trench
 575+U.EDGU shelf edge a line along which there is a marked increase of slope at the outer margin of a continental shelf or island shelf
 576+U.ESCU escarpment (or scarp) an elongated and comparatively steep slope separating flat or gently sloping areas
 577+U.FANU fan a relatively smooth feature normally sloping away from the lower termination of a canyon or canyon system
 578+U.FLTU flat a small level or nearly level area
 579+U.FRKU fork a branch of a canyon or valley
 580+U.FRSU forks a branch of a canyon or valley
 581+U.FRZU fracture zone an extensive linear zone of irregular topography of the sea floor, characterized by steep-sided or asymmetrical ridges, troughs, or escarpments
 582+U.FURU furrow a closed, linear, narrow, shallow depression
 583+U.GAPU gap a narrow break in a ridge or rise
 584+U.GLYU gully a small valley-like feature
 585+U.HLLU hill an elevation rising generally less than 500 meters
 586+U.HLSU hills elevations rising generally less than 500 meters
 587+U.HOLU hole a small depression of the sea floor
 588+U.KNLU knoll an elevation rising generally more than 500 meters and less than 1,000 meters and of limited extent across the summit
 589+U.KNSU knolls elevations rising generally more than 500 meters and less than 1,000 meters and of limited extent across the summits
 590+U.LDGU ledge a rocky projection or outcrop, commonly linear and near shore
 591+U.LEVU levee an embankment bordering a canyon, valley, or seachannel
 592+U.MDVU median valley the axial depression of the mid-oceanic ridge system
 593+U.MESU mesa an isolated, extensive, flat-topped elevation on the shelf, with relatively steep sides
 594+U.MNDU mound a low, isolated, rounded hill
 595+U.MOTU moat an annular depression that may not be continuous, located at the base of many seamounts, islands, and other isolated elevations
 596+U.MTSU mountains well-delineated subdivisions of a large and complex positive feature
 597+U.MTU mountain a well-delineated subdivision of a large and complex positive feature
 598+U.PKSU peaks prominent elevations, part of a larger feature, either pointed or of very limited extent across the summit
 599+U.PKU peak a prominent elevation, part of a larger feature, either pointed or of very limited extent across the summit
 600+U.PLFU platform a flat or gently sloping underwater surface extending seaward from the shore
 601+U.PLNU plain a flat, gently sloping or nearly level region
 602+U.PLTU plateau a comparatively flat-topped feature of considerable extent, dropping off abruptly on one or more sides
 603+U.PNLU pinnacle a high tower or spire-shaped pillar of rock or coral, alone or cresting a summit
 604+U.PRVU province a region identifiable by a group of similar physiographic features whose characteristics are markedly in contrast with surrounding areas
 605+U.RAVU ravine a small canyon
 606+U.RDGU ridge a long narrow elevation with steep sides
 607+U.RDSU ridges long narrow elevations with steep sides
 608+U.RFSU reefs surface-navigation hazards composed of consolidated material
 609+U.RFU reef a surface-navigation hazard composed of consolidated material
 610+U.RISU rise a broad elevation that rises gently, and generally smoothly, from the sea floor
 611+U.RMPU ramp a gentle slope connecting areas of different elevations
 612+U.RNGU range a series of associated ridges or seamounts
 613+U.SCNU seachannel a continuously sloping, elongated depression commonly found in fans or plains and customarily bordered by levees on one or two sides
 614+U.SCSU seachannels continuously sloping, elongated depressions commonly found in fans or plains and customarily bordered by levees on one or two sides
 615+U.SDLU saddle a low part, resembling in shape a saddle, in a ridge or between contiguous seamounts
 616+U.SHFU shelf a zone adjacent to a continent (or around an island) that extends from the low water line to a depth at which there is usually a marked increase of slope towards oceanic depths
 617+U.SHLU shoal a surface-navigation hazard composed of unconsolidated material
 618+U.SHSU shoals hazards to surface navigation composed of unconsolidated material
 619+U.SHVU shelf valley a valley on the shelf, generally the shoreward extension of a canyon
 620+U.SILU sill the low part of a gap or saddle separating basins
 621+U.SLPU slope the slope seaward from the shelf edge to the beginning of a continental rise or the point where there is a general reduction in slope
 622+U.SMSU seamounts elevations rising generally more than 1,000 meters and of limited extent across the summit
 623+U.SMU seamount an elevation rising generally more than 1,000 meters and of limited extent across the summit
 624+U.SPRU spur a subordinate elevation, ridge, or rise projecting outward from a larger feature
 625+U.TERU terrace a relatively flat horizontal or gently inclined surface, sometimes long and narrow, which is bounded by a steeper ascending slope on one side and by a steep descending slope on the opposite side
 626+U.TMSU tablemounts (or guyots) seamounts having a comparatively smooth, flat top
 627+U.TMTU tablemount (or guyot) a seamount having a comparatively smooth, flat top
 628+U.TNGU tongue an elongate (tongue-like) extension of a flat sea floor into an adjacent higher feature
 629+U.TRGU trough a long depression of the sea floor characteristically flat bottomed and steep sided, and normally shallower than a trench
 630+U.TRNU trench a long, narrow, characteristically very deep and asymmetrical depression of the sea floor, with relatively steep sides
 631+U.VALU valley a relatively shallow, wide depression, the bottom of which usually has a continuous gradient
 632+U.VLSU valleys a relatively shallow, wide depression, the bottom of which usually has a continuous gradient
 633+V.BUSH bush(es) a small clump of conspicuous bushes in an otherwise bare area
 634+V.CULT cultivated area an area under cultivation
 635+V.FRST forest(s) an area dominated by tree vegetation
 636+V.FRST.F fossilized forest a forest fossilized by geologic processes and now exposed at the earth's surface
 637+V.GRSLD grassland an area dominated by grass vegetation
 638+V.GRV grove
 639+V.GRV.C coconut grove a planting of coconut trees
 640+V.GRV.O olive grove a planting of olive trees
 641+V.GRV.P palm grove a planting of palm trees
 642+V.GRV.PN pine grove a planting of pine trees
 643+V.HTH heath an upland moor or sandy area dominated by low shrubby vegetation including heather
 644+V.MDW meadow a small, poorly drained area dominated by grassy vegetation
 645+V.OCH orchard(s) a planting of fruit or nut trees
 646+V.SCRB scrubland an area of low trees, bushes, and shrubs stunted by some environmental limitation
 647+V.TREE tree(s) a conspicuous tree used as a landmark
 648+V.TUND tundra a marshy, treeless, high latitude plain, dominated by mosses, lichens, and low shrub vegetation under permafrost conditions
 649+V.VIN vineyard a planting of grapevines
 650+V.VIN.S vineyards plantings of grapevines
 651+null not available

Status & tagging log