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 + "° " + latmin + " " + latns + " " + |
| 253 | + londeg + "° " + 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 |
1 | 326 | + 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 |
2 | 327 | + 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 |
1 | 68 | + 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 |