title: Modifying the OverviewMapComponent.mxml

text: In the flexviewer I want to add text in the overview map that says "overview map." I am not sure what the code would be and assume it would be place in the s:BorderContainer component?               <?xml version="1.0" encoding="utf-8"?>                            import mx.collections.ArrayCollection;             import mx.core.FlexGlobals;             import mx.events.EffectEvent;                  private const lineSym:SimpleLineSymbol = new SimpleLineSymbol("solid", 0xFF0000, 0.7, 2);             private const currentExtentSym:SimpleFillSymbol = new SimpleFillSymbol("solid", 0xFF0000, 0.2, lineSym);                  [Bindable]             public var map:Map;             public var configData:ConfigData;             public var openDefaultToolTip:String;             public var closeDefaultToolTip:String;                  private var graphicsLayer:GraphicsLayer = new GraphicsLayer();             private var proxyUrl:String;             private var overviewGraphic:Graphic = new Graphic();             private var useBaseMapLayer:Boolean;             private var baseMapSwitched:Boolean;             private var currentBaseMapId:String;             private var hasOverviewGraphicBeenMoved:Boolean = false;             private var xOffset:Number;             private var yOffset:Number;                  [Bindable]             private var openToolTip:String;             [Bindable]             private var closeToolTip:String;                  private function init():void             {                 overviewGraphic.buttonMode = true;                 toggleIcon.addEventListener(MouseEvent.CLICK, toggleIcon_clickHandler);                 viewBox.setStyle("backgroundColor", FlexGlobals.topLevelApplication.getStyle("backgroundColor"));             }                  private function toggleIcon_clickHandler(event:MouseEvent):void             {                 currentState = (currentState == "collapsed") ? "expanded" : "collapsed";             }                  private var _configXML:XML;                  public function set expansionDirection(direction:String):void             {                 switch (direction)                 {                     case ExpansionDirection.UP_RIGHT:                     {                         toggleIcon.rotation = 90;                         toggleIcon.left = toggleIcon.bottom = iconMask.left = iconMask.bottom = null;                         toggleIcon.right = toggleIcon.top = iconMask.right = iconMask.top = 0;                         break;                     }                     case ExpansionDirection.DOWN_RIGHT:                     {                         toggleIcon.rotation = 180;                         toggleIcon.left = toggleIcon.top = iconMask.left = iconMask.top = null;                         toggleIcon.right = toggleIcon.bottom = iconMask.right = iconMask.bottom = 0;                         break;                     }                     case ExpansionDirection.DOWN_LEFT:                     {                         toggleIcon.rotation = 270;                         toggleIcon.right = toggleIcon.top = iconMask.right = iconMask.top = null;                         toggleIcon.left = toggleIcon.bottom = iconMask.left = iconMask.bottom = 0;                         break;                     }                 }             }                  public function get configXML():XML             {                 return _configXML;             }                  public function set configXML(value:XML):void             {                 _configXML = value;                      if (configXML)                 {                     // overviewmap open/close tooltip label                     openToolTip = configXML.labels.opentooltip || openDefaultToolTip;                     closeToolTip = configXML.labels.closetooltip || closeDefaultToolTip;                          // proxyURL                     proxyUrl = configData.proxyUrl;                          var url:String = configXML.layer.@url;                     var type:String;                     var useProxy:Boolean;                     if (url)                     {                         useBaseMapLayer = false;                         type = configXML.layer.@type;                         useProxy = configXML.layer.@useproxy[0] && configXML.layer.@useproxy == "true";                         switch (type.toLowerCase())                         {                             case "tiled":                             {                                 var tiledlayer:ArcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer(url);                                 tiledlayer.alpha = alpha;                                 if (proxyUrl && useProxy)                                 {                                     tiledLayer.proxyURL = proxyUrl;                                 }                                 overviewMap.addLayer(tiledlayer);                                 break;                             }                             case "dynamic":                             {                                 var dynlayer:ArcGISDynamicMapServiceLayer = new ArcGISDynamicMapServiceLayer(url);                                 dynlayer.alpha = alpha;                                 if (proxyUrl && useProxy)                                 {                                     dynlayer.proxyURL = proxyUrl;                                 }                                 overviewMap.addLayer(dynlayer);                                 break;                             }                         }                     }                     else                     {                         useBaseMapLayer = true;                         // get the base map layers                         for (var i:uint = 0; i < configData.basemaps.length; i++)                         {                             type = configData.basemaps[i].type;                             useProxy = configData.basemaps[i].useProxy;                             proxyUrl = configData.proxyUrl;                                  const alpha:Number = Number(configData.basemaps[i].alpha);                             const autoRefresh:Number = Number(configData.basemaps[i].autoRefresh);                             const label:String = configData.basemaps[i].label;                             const token:String = configData.basemaps[i].token;                             const urlBaseMap:String = configData.basemaps[i].url;                             const bingMapKey:String = configData.basemaps[i].key;                             const style:String = configData.basemaps[i].style;                             const visible:Boolean = configData.basemaps[i].visible;                             const visibleLayers:String = configData.basemaps[i].visibleLayers;                             const culture:String = configData.basemaps[i].culture;                             const useamf:Boolean = configData.basemaps[i].useamf;                             const mode:String = configData.basemaps[i].mode;                             const noData:Number = Number(configData.basemaps[i].noData);                             const serviceHost:String = configData.basemaps[i].serviceHost;                             const serviceName:String = configData.basemaps[i].serviceName;                             const definitionExpression:String = configData.basemaps[i].definitionExpression;                                  switch (type.toLowerCase())                             {                                 case "tiled":                                 {                                     var tiledLayer:ArcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer(urlBaseMap);                                     tiledLayer.alpha = alpha;                                     tiledLayer.id = label;                                     tiledLayer.visible = visible;                                     tiledLayer.token = token;                                     if (proxyUrl && useProxy)                                     {                                         tiledLayer.proxyURL = proxyUrl;                                     }                                     overviewMap.addLayer(tiledLayer);                                     break;                                 }                                 case "dynamic":                                 {                                     var dynLayer:ArcGISDynamicMapServiceLayer = new ArcGISDynamicMapServiceLayer(urlBaseMap);                                     dynLayer.alpha = alpha;                                     dynLayer.id = label;                                     dynLayer.visible = visible;                                     dynLayer.token = token;                                     if (autoRefresh > 0)                                     {                                         setInterval(dynLayer.refresh, autoRefresh * 1000);                                     }                                     if (visibleLayers)                                     {                                         var vizLayers:Array = visibleLayers.split(",");                                         dynLayer.visibleLayers = new ArrayCollection(vizLayers);                                     }                                     if (proxyUrl && useProxy)                                     {                                         dynLayer.proxyURL = proxyUrl;                                     }                                     overviewMap.addLayer(dynLayer);                                     break;                                 }                                 case "feature":                                 {                                     var featureLayer:FeatureLayer = new FeatureLayer(urlBaseMap);                                     featureLayer.alpha = alpha;                                     featureLayer.id = label;                                     featureLayer.visible = visible;                                     featureLayer.outFields = [ '*' ];                                     featureLayer.token = token;                                     featureLayer.useAMF = useamf;                                     if (mode)                                     {                                         featureLayer.mode = mode;                                     }                                     if (proxyUrl && useProxy)                                     {                                         featureLayer.proxyURL = proxyUrl;                                     }                                     if (definitionExpression && definitionExpression != "")                                     {                                         featureLayer.definitionExpression = definitionExpression;                                     }                                     overviewMap.addLayer(featureLayer);                                     break;                                 }                                 case "bing":                                 {                                     var veTiledLayer:VETiledLayer = new VETiledLayer();                                     veTiledLayer.alpha = alpha;                                     veTiledLayer.id = label;                                     veTiledLayer.visible = visible;                                     veTiledLayer.key = bingMapKey;                                     if (style)                                     {                                         veTiledLayer.mapStyle = style;                                     }                                     if (culture)                                     {                                         veTiledLayer.culture = culture;                                     }                                     overviewMap.addLayer(veTiledLayer);                                     break;                                 }                                 case "image":                                 {                                     var imgLayer:ArcGISImageServiceLayer = new ArcGISImageServiceLayer(urlBaseMap);                                     imgLayer.alpha = alpha;                                     imgLayer.id = label;                                     imgLayer.visible = visible;                                     imgLayer.noData = noData;                                     imgLayer.token = token;                                     if (proxyUrl && useProxy)                                     {                                         imgLayer.proxyURL = proxyUrl;                                     }                                     overviewMap.addLayer(imgLayer);                                     break;                                 }                                 case "arcims":                                 {                                     var arcimsLayer:ArcIMSMapServiceLayer = new ArcIMSMapServiceLayer();                                     arcimsLayer.alpha = alpha;                                     arcimsLayer.id = label;                                     arcimsLayer.visible = visible;                                     arcimsLayer.serviceHost = serviceHost;                                     arcimsLayer.serviceName = serviceName;                                     if (autoRefresh > 0)                                     {                                         setInterval(arcimsLayer.refresh, autoRefresh * 1000);                                     }                                     if (visibleLayers)                                     {                                         var visLayers:Array = visibleLayers.split(",");                                         arcimsLayer.visibleLayers = new ArrayCollection(visLayers);                                     }                                     if (proxyUrl && useProxy)                                     {                                         arcimsLayer.proxyURL = proxyUrl;                                     }                                     overviewMap.addLayer(arcimsLayer);                                     break;                                 }                                 case "osm":                                 {                                     var osmLayer:OpenStreetMapLayer = new OpenStreetMapLayer();                                     osmLayer.alpha = alpha;                                     osmLayer.id = label;                                     osmLayer.name = label;                                     osmLayer.visible = visible;                                     overviewMap.addLayer(osmLayer);                                     break;                                 }                             }                         }                         AppEvent.addListener(AppEvent.BASEMAP_SWITCH, viewContainer_basemapSwitchHandler);                     }                     currentState = configXML.initialstate == "open" ? "expanded" : "collapsed";                     if (currentState == "collapsed") // turn layer(s) off if component is collapsed                     {                         for each (var layer:Layer in overviewMap.layers)                         {                             layer.visible = false;                         }                     }                 }             }                  private function updateOverviewExtentFromMap():void             {                 overviewMap.extent = map.extent.expand(3);                 overviewGraphic.geometry = map.extent;             }                  private function updateMapExtentFromOverview():void             {                 map.extent = overviewGraphic.geometry as Extent;             }                  private function map_extentChangeHandler(event:ExtentEvent):void             {                 updateOverviewExtentFromMap();                      //hide overview box if larger than overview map                 if (!overviewMap.extent.contains(overviewGraphic.geometry))                 {                     overviewGraphic.visible = false;                 }                 else                 {                     overviewGraphic.visible = true;                 }             }                  private function overviewMap_loadHandler(event:MapEvent):void             {                 graphicsLayer.name = "overviewMapGraphicsLayer";                 graphicsLayer.symbol = currentExtentSym;                 overviewMap.addLayer(graphicsLayer);                      overviewGraphic.geometry = map.extent;                 overviewGraphic.addEventListener(MouseEvent.MOUSE_DOWN, overviewGraphic_mouseDownHandler);                      //update map extent when mouse moves out of the overview map                 overviewMap.addEventListener(MouseEvent.ROLL_OUT, overviewMap_mouseRollOutHandler);                      graphicsLayer.add(overviewGraphic);                      map.addEventListener(ExtentEvent.EXTENT_CHANGE, map_extentChangeHandler);                 updateOverviewExtentFromMap();             }                  private function overviewMap_mouseRollOutHandler(event:MouseEvent):void             {                 overviewMap.removeEventListener(MouseEvent.MOUSE_MOVE, overviewMap_mouseMoveHandler);                 overviewMap.removeEventListener(MouseEvent.MOUSE_UP, overviewMap_mouseUpHandler);                 overviewGraphic.addEventListener(MouseEvent.MOUSE_DOWN, overviewGraphic_mouseDownHandler);                      if (hasOverviewGraphicBeenMoved)                 {                     hasOverviewGraphicBeenMoved = false;                     updateMapExtentFromOverview();                 }             }                  private function overviewGraphic_mouseDownHandler(event:MouseEvent):void             {                 overviewGraphic.removeEventListener(MouseEvent.MOUSE_DOWN, overviewGraphic_mouseDownHandler);                 overviewMap.addEventListener(MouseEvent.MOUSE_UP, overviewMap_mouseUpHandler);                 overviewMap.addEventListener(MouseEvent.MOUSE_MOVE, overviewMap_mouseMoveHandler);                      var overviewCenterMapPoint:MapPoint = overviewGraphic.geometry.extent.center;                 var mouseMapPoint:MapPoint = overviewMap.toMapFromStage(event.stageX, event.stageY);                 xOffset = mouseMapPoint.x - overviewCenterMapPoint.x;                 yOffset = mouseMapPoint.y - overviewCenterMapPoint.y;             }                  private function overviewMap_mouseMoveHandler(event:MouseEvent):void             {                 hasOverviewGraphicBeenMoved = true;                      var overviewExtent:Extent = overviewGraphic.geometry as Extent;                 var mouseMapPoint:MapPoint = overviewMap.toMapFromStage(event.stageX, event.stageY);                 mouseMapPoint.x -= xOffset;                 mouseMapPoint.y -= yOffset;                      overviewGraphic.geometry = overviewExtent.centerAt(mouseMapPoint);             }                  private function overviewMap_mouseUpHandler(event:MouseEvent):void             {                 overviewMap.removeEventListener(MouseEvent.MOUSE_MOVE, overviewMap_mouseMoveHandler);                 overviewMap.removeEventListener(MouseEvent.MOUSE_UP, overviewMap_mouseUpHandler);                 overviewGraphic.addEventListener(MouseEvent.MOUSE_DOWN, overviewGraphic_mouseDownHandler);                      if (hasOverviewGraphicBeenMoved)                 {                     hasOverviewGraphicBeenMoved = false;                     updateMapExtentFromOverview();                 }             }                  private function viewContainer_basemapSwitchHandler(event:AppEvent):void             {                 baseMapSwitched = true;                 currentBaseMapId = event.data as String;                 if (currentState == "expanded")                 {                     showCurrentBaseMap(currentBaseMapId);                 }             }                  private function showCurrentBaseMap(currentBaseMapId:String):void             {                 var configBasemaps:Array = configData.basemaps;                      if (currentBaseMapId)                 {                     var selectedLabel:String;                     for (var i:uint = 0; i < configBasemaps.length; i++)                     {                         if (configBasemaps[i].id == currentBaseMapId)                         {                             selectedLabel = configBasemaps[i].label;                             break;                         }                     }                     if (selectedLabel)                     {                         // turn on the selected basemap layers (more than one layer can have the same label)                         var layers:ArrayCollection = overviewMap.layers as ArrayCollection;                         for (i = 0; i < configBasemaps.length; i++)                         {                             var basemapLabel:String = configBasemaps[i].label;                             for each (var layer:Layer in layers)                             {                                 if (layer.id == basemapLabel)                                 {                                     if (layer.id == selectedLabel)                                     {                                         layer.visible = true;                                     }                                     else                                     {                                         layer.visible = false;                                     }                                 }                             }                         }                     }                 }             }                  private function sequence_effectStartHandler(event:EffectEvent):void             {                 if (currentState == "expanded")                 {                     if (useBaseMapLayer)                     {                         if (baseMapSwitched)                         {                             showCurrentBaseMap(currentBaseMapId);                         }                         else                         {                             // on start up and if basemap is not switched                             for (var i:int = 0; i < configData.basemaps.length; i++)                             {                                 var basemapLabel:String = configData.basemaps[i].label;                                 var isVisible:Boolean = configData.basemaps[i].visible;                                 for each (var layer:Layer in overviewMap.layers)                                 {                                     if (layer.id == basemapLabel)                                     {                                         layer.visible = isVisible;                                     }                                 }                             }                         }                     }                     else                     {                         for each (var layer1:Layer in overviewMap.layers)                         {                             layer1.visible = true;                         }                     }                 }             }                  private function sequence_effectEndHandler(event:EffectEvent):void             {                 if (currentState == "collapsed") // turn layer(s) off if component is collapsed                 {                     for each (var layer:Layer in overviewMap.layers)                     {                         if (!(layer is GraphicsLayer && layer.name == "overviewMapGraphicsLayer"))                         {                             layer.visible = false;                         }                     }                 }             }         ]]>     </fx:Script>          <s:states>         <s:State name="collapsed"/>         <s:State name="expanded"/>     </s:states>          <s:transitions>         <s:Transition fromState="*" toState="*">             <s:Sequence effectEnd="sequence_effectEndHandler(event)" effectStart="sequence_effectStartHandler(event)">                 <s:Resize duration="800" target="{viewBox}"/>                 <s:Rotate angleBy="180"                           autoCenterTransform="true"                           duration="300"                           target="{toggleIcon}"/>             </s:Sequence>         </s:Transition>     </s:transitions>          <s:BorderContainer id="viewBox"                        width.collapsed="{toggleIcon.width}" width.expanded="250" height.collapsed="{toggleIcon.height}" height.expanded="250"                        backgroundAlpha="1.0">         <esri:Map id="overviewMap"                   width="250" height="250"                   clickRecenterEnabled="false"                   doubleClickZoomEnabled="false"                   keyboardNavigationEnabled="false"                   load="overviewMap_loadHandler(event)"                   logoVisible="false"                   mask="{mapMask}"                   panArrowsVisible="false"                   panEnabled="false"                   rubberbandZoomEnabled="false"                   scaleBarVisible="false"                   scrollWheelZoomEnabled="false"                   wrapAround180="{map.wrapAround180}"                   zoomSliderVisible="false"/>         <s:BorderContainer id="mapMask"                            width="{viewBox.width}" height="{viewBox.height}"/>         <s:Group width="{viewBox.width}" height="{viewBox.height}">             <mx:Image id="toggleIcon"                       width="23" height="23"                       buttonMode="true"                       mask="{iconMask}"                       smoothBitmapContent="true"                       source="assets/images/i_expand2.png"                       toolTip.collapsed="{openToolTip}"                       toolTip.expanded="{closeToolTip}"                       useHandCursor="true"/>             <s:BorderContainer id="iconMask"                                width="{toggleIcon.width}" height="{toggleIcon.height}"/>         </s:Group>          </s:BorderContainer>     <s:Rect left="-1" right="-1" top="-1" bottom="-1">         <s:stroke>             <s:SolidColorStroke color="{getStyle('contentBackgroundColor')}" weight="1"/>         </s:stroke>     </s:Rect>     <s:Rect left="-5" right="-5" top="-5" bottom="-5">         <s:stroke>             <s:SolidColorStroke color="{getStyle('color')}" weight="2"/>         </s:stroke>     </s:Rect>


title: MapFish Printing Capabilities: WFS?

text: we are evaluating whether MapFish Printing module fit our needs or not.. From a 2010 presentation http://2010.foss4g.org/presentations/3234.pdf, it says MapFish printing has following readers:   * Web Map Server (WMS)   * Google Maps   * Tile Map Server (TMS)   * Image   * KaMap   * KaMapCache   * Open Street Map (OSM)   * Tile Cache   * GeoJSON I am wondering does it support   * ArcGIS Server WMS?    * OpenLayers.Layer.ArcGISCache layer? besides, what about **WFS**? It lists GeoJSON, does this mean it supports **_GeoJSON-Based WFS_**? again, **ArcGIS Server WFS**? a lot of questions, but I just couldn't be sure about the answers. thanks for any advice in advance!


title: PostGIS geometry intersection test results different for Point and Linestring

text: Can anyone please tell me what I'm doing wrong, and how do I avoid the problem? I'll attempt to clarify what I'm doing as things go along. The geom column is a multipolygon column, all values are SRID=4326.               archive=> select st_intersects( GeomFromewkt('SRID=4326;LINESTRING(-16.899216666666668 12.610816666666667,-16.899216666666668 12.610816666666667)')      , z.geom) as intersects     from zone z     where z.zone_id=2;      intersects      ------------      f     (1 row)          archive=> select   st_intersects( GeomFromewkt('SRID=4326;POINT(-16.899216666666668 12.610816666666667)')      , z.geom) as intersects     from zone z     where z.zone_id=2;      intersects      ------------      t     (1 row)      This is the text representation of the geom:               MULTIPOLYGON(((-18.7273147400488 12.8862644964914,-18.7334078119781 12.3609663554343,-16.5597662148828 12.3796303212717,-16.6302631480867 13.1209501528692,-18.7273147400488 12.8862644964914)))      How can the linestring not intersect with the geometry, yet a single point does? Is this some sort of rounding error, or a problem because the linestring has a length of zero? If the length is the problem, how do I avoid this problem?


title: How to programmatically determine the size of a feature class in a file geodatabase?

text: My answer to the question How to get the size of a file geodatabase feature class on disk? shows how one can enable a column in ArcCatalog showing the file size of FGDB feature classes in the contents view. Does anyone know how ArcCatalog is able to calculate this, and is there a method or property exposed in ArcObjects or another API to determine this programmatically? I had a look through the `esriGeodatabase` ArcObjects namespace and did not find anything relevant, nor in the file geodatabase API, but I may have missed something.


title: Why is there an offset between reprojection results of ArcGIS and QGIS from PSAD56 to WGS84?

text: I did a comparison of file system PSAD 56 to WGS 84 with arcgis and qgis and the difference is 8 m, why is the difference? This is a points file (shape) and it is in UTM Zone 19S.


title: Drawing selection custom selection box - ArcObjects

text: I have some code that I'm using to selecting features in a certain extent. I already rigged the tool properly, so it selected the objects as needed, but I want to draw interactively the selection box the user is making. I'm using IScreenDisplay.DrawRectangle method, but it pollutes the screen with many small rectangles. is There a way to clear up the old drawings in the screen? This Draw method is being called from a mouse move event. Any ideas? Here are two methods I'm using to do the dirty work:                   public override void OnMouseMove(int button, int shift, int x, int y)         {             if (button != 1)                 return;                  if (!_IsSelectOperation)                 return;                  endPoint = focusScreenDisplay.DisplayTransformation.ToMapPoint(x, y);             envelope.PutCoords(startPoint.X, startPoint.Y, endPoint.X, endPoint.Y);             DrawEnvelope(envelope, BuildSelectionSymbol(), focusScreenDisplay);         }              private void DrawEnvelope(IEnvelope envelope, ISymbol symbol, IScreenDisplay screenDisplay)         {             screenDisplay.StartDrawing(screenDisplay.WindowDC, 0);             screenDisplay.SetSymbol(symbol);             screenDisplay.DrawRectangle(envelope);             screenDisplay.FinishDrawing();         }      EDIT: here is the code for BuildSelectionSymbol                   private ISymbol BuildSelectionSymbol()         {             IColor fillColor = new RgbColorClass();             fillColor.Transparency = 0;                  IRgbColor outlineColor = new RgbColorClass();             outlineColor.Red = 0;             outlineColor.Green = 0;             outlineColor.Blue = 0;                  ISimpleLineSymbol lineSymbol = new SimpleLineSymbolClass();             lineSymbol.Color = outlineColor as IColor;             lineSymbol.Width = 1;             lineSymbol.Style = esriSimpleLineStyle.esriSLSDash;                  ISimpleFillSymbol fillSymbol = new SimpleFillSymbolClass();             fillSymbol.Color = fillColor;             fillSymbol.Outline = lineSymbol;             fillSymbol.Style = esriSimpleFillStyle.esriSFSHollow;                  ISymbol symbol = fillSymbol as ISymbol;             symbol.ROP2 = esriRasterOpCode.esriROPNOP;                  return symbol;         }


title: When trying to convert lon/lat (curved) coordinates to projected (flat) coordinates with ruby, the second (y axis) projected coords are inaccurate

text: So I have created a polygon using Google Earth pro. I've exported it into a kml file, which I can then parse using ruby's XML/HTTP-parsing Nokogiri gem into an array of WKT points (LinearRing) thats soon to be a polygon. I'm feeding the geographic points into RGeo to try to get the equivalent points to make up a projected polygon originating out of the conversion from the geographic polygon.               class ReadKmlCoords       attr_reader :ary, :coords     def initialize         proj4 = "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs"         @factory = RGeo::Geographic.projected_factory( :projection_proj4 => proj4, :projection_srid => 3361, :buffer_resolution => 8 )         @flat = RGeo::CoordSys::Proj4.create(proj4)         @curved = @flat.get_geographic       end            def go(fn=nil)         fn = fn || "gvilleblob.kml"         x = Nokogiri::XML(File.open(fn).read)         @ary = x.css("//coordinates").children.first.inner_text.gsub("\n", "").gsub("\t", "").split(",0")         @ary.pop #removes spurious last datapoint         @coords = []         r = RGeo::WKRep::WKTParser.new         @ary.each do |pair|           lon = pair.split(",").first           lat = pair.split(",").last           geographic_point = r.parse("POINT (#{lon} #{lat})")           @coords << RGeo::CoordSys::Proj4.transform(@curved, geographic_point, @flat, @factory)         end         @factory.polygon(@factory.projection_factory.linear_ring(@coords))       end     end      This polygon is then to be stored in my database, which, in its projected form, will allow me to do PostGIS functions like `st_overlaps`, thus finding all the parcels lying under my big blob just made in Google Earth. You see, it seems there is some limitation on doing 'spatial joins' when using geographic topologies...right now I'm only able to get the `which_parcels_are_under_this_manmade_blob` method (PostGIS's `st_overlaps` method, RGeo's `#overlaps?` method, etc) to work when using the flat, projected coordinates. PostGIS scans about 100 parcels a second against another polygon vs RGeo's 1 parcel/s. So whatever I'm doing, it has to work with PostGIS. Anyway, back to the processing, **Unfortunately** , the polygon produced by this code is inaccurate.               #An example of the (inaccurate, supposed-to-be-projected) polygon's points     #<RGeo::Geos::CAPIPolygonImpl:0x3fc5e22774a4 "POLYGON ((1577662.192624186 85.0511287, 1577366.1694666024 85.0511287, 1576894.8961126604 85.0511287, 1576139.5482155932 85.0511287, 1575483.7687068093 85.0511287          #And here are the first couple geographic coordinates (pre-WKT), the `@ary` in the code above      @ary = ["-82.40799896121337,34.87381058338332", " -82.40898466663725,34.87373538049771", " -82.41054451142325,34.87304749870849", " -82.41304553437641,34.87200437474734", " -82.41521498428749,34.87098775443968", " -82.41738128573057,34.86997258001951", ...]       I've used QGIS to check out the datapoints and it turns out the left number of each pair seems to be the correct projected x axis coordinate, while the right number is inaccurate. ALTERNATIVELY, as a workaround solution, if there is any way I could do a an `overlaps?`/`st_overlaps` equivalent function using PostGIS which works with geographic coordinates, I'm all ears to that as well. Again, my purpose isn't to convert geographic coordinates in projected coordinates. I simply want to determine which parcels fall inside of a polygon, which originally is drawn in Google Earth. I _am_ able to convert the projected points into geographic points, just not vice versa.


title: Deleting network features in python script doesn't create net junctions

text: I have a script that makes a copy of a network dataset for a 3rd party app to use. One of the junction feature classes causes problems with the app. The ideal solution would be to remove it from the network, but we're at 10.0 and have no way to do that without dropping and rebuilding it (that I'm aware of). So, I instead am just deleting all the features out and leaving an empty table. When manually deleting junction features, net junctions are automatically created as needed. However, it doesn't look like they're getting created when deletes are done using either DeleteFeatures or DeleteRows in python. Has anyone encountered this? Is there either a better way to accomplish the task or a way to get python to create the net junctions?


title: Similarity between two raster maps

text: Having two raster maps as the examples below: ![enter image description here](http://i.stack.imgur.com/LO5xx.png) We are interested in evaluating their similarities. As shown, they are not fully overlapping. We guess one way is to clip small one area from the bigger one, therefore there will be two same size raster maps, e.g., arrays. So we may use pixel-wise correlation to find out how similar they are. The existing issues/difficulties are:   1) The resolution of the two raster maps are not the same. So even for the above idea there is a problem of point-wise proceeding. We wonder to know: > 1) a better way to find their similarities as human-eye (+brain) does, that > is, there is absolutely high similarity in the trend of spatial variation in > the two maps.   >  2) if pixel-wise correlation is OK for our purpose? **EDIT**   Think this way: image one as a matrix of size `mxn` and image two as a matrix of size `pxq`. A bounding box for matrix one is `{x1,y1,x2,y2}` which mean regardless to image one resolution its dual matrix (one) must fit the bounding box perfectly. The same scenario for image two and so matrix two. Note that their bounding boxes are also different. Thus this first stage is to stretch matrices to fit their dual bounding boxes. **_How to do this job while not using any image manipulation software_**? We prefer to do it using `Python + Numpy (Scipy)`. The second stage is to resample each stretched matrix to a unique dimensions. This makes it possible to do element-wise operations on both matrices. **_How to do this?_** We are mostly concerned in the algorithms. You may notice that since the final comparison will be element- wise thus both the above stages must be properly chosen to avoid any distortion (change in the data). We are looking for some algorithms to handle all the above to result something that visually we see in terms of relationships in the two images (matrices).


title: Raster Dataset projection problem

text: I have a problem connected with my Raster Dataset projection. Two of its bands cannot be shown in some scale - only under 1:1500, when I use 'Zoom to raster resolution' option. Histograms for all 3 bands are correct, I even calculated statistics and did pyramids. Below you can find screens of it (3rd band is presented same as band 2): ![enter image description here](http://i.stack.imgur.com/Uw6eQ.png) I would be grateful if you could help me :) PS. I store them (R.D.) in a file geodatabase (.gdb).


title: Exporting geographic coordinates in QGis as projected (flat) coordinates

text: I've created some polygons with Google Earth which I'd like to convert to my flat map's coordinate system. I've loaded a few shapefiles into QGis of a county's roads, parcels, etc. The coordinate system for these points is projected using the "NAD83(HARN) / South Carolina (ft)" or "EPSG:3361" standard. Next I load a kml file into QGis created using Google Earth Pro which is composed of a Polygon of geographic (lon/lat) points. QGis is clever and has perfectly overlaid the geographic-points polygon directly where it should be on the flat/projected-points polygon. I can hover my mouse around and see the projected coordinate points where my polygon's exterior ring resides. I want to export the points of my geographic-polygon into the projected coordinate system that the rest of my qgis map is based on. This is because all of my county data shapefiles are projected, that and PostGIS doesn't seem to allow me to do spatial joins of two geographic polygons... Anyway, I right click on the imported vector layer (Google Earth-gen'd polygon) and click 'Save As'. (I've already enabled 'On the Fly CRS Transformation') The plan is to export the polygon into projected coordinates, so I choose 'Selected CRS' and locate my proj4 code which is for SRID:EPSG-3361. Exporting this does not accomplish my goal. The exported kml still contains geographic coordinates. QGis seems very capable of doing what I want to do, its overlaid two layers from entirely different coordinate systems. How might I go about transforming this clearly-understood (by qgis) polygon into the projected coordinate system upon which it apparently lies? UPDATE 1: - I created a second layer whose chosen CRS is the projected one, redrew a similar polygon on top of the imported one, and tried to export it, using, again, the projected coordinate system. IT ALSO got exported into geographic coordinates! UPDATE 2: I exported a shapefile of the county this time and IT TOO got exported into geographic coordinates!!! This tells a lot about the nature of the problem. Everything is being exported into geographic coordinates. Could it just be the fact that I'm using kml?


title: How to avoid intersection in pgRouting

text: I'm a newbie in pgrouting. I want to create a web-app with routing function. I want to ask how to avoid a road intersection with pgRouting? For example, there are some traffic jams happened in several road intersection and I want the route to avoid/exclude that road intersecton from calculation. regards


title: What is the difference between geocoding and georeferencing?

text: After some googling around both seem to be interchangable words, where we speak of tying the spatial info of a real place and storing in database. But still I am not satisfied, there should be some major differences. Also are there any tools in `Oracle Spatial` suite for this to carry out.


title: How to project TIGER & WGS84 to Spherical Mercator?

text: So I've been banging my head on this for about a week now. I'm using QGIS on a Mac. I have various shapefiles in WGS84 and Census TIGER NAD83 (EPSG:4269) and I would like to give them the same projection as Google, Bing and Openstreetmaps. My map of the world, the one in WGS84, is always slightly off. Here is a screenshot of Florida compared to a Cloudmade tileset: ![enter image description here](http://i.stack.imgur.com/4UXlq.png) The map on the bottom is Cloudmade and the grey one on top is mine. I'm starting to think that I could be doing this wrong in QGIS. Here are my steps:   1. Import shapefile.   2. Settings -> Custom CRS -> Create & save a custom CRS called Spherical Mercator and using parameters: `+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs`   3. Set the layer and project to be using that CRS.   4. Right clicking on layer and save as shapefile. I'm using Tilestache to display my tiles. They are getting rendered through Mapnik. The Map XML property "srs" is also set to: `+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs` Any insight on what my issue could be would be greatly appreciated. Thanks.


title: How to reproject vector datasets in ArcMap?

text: I want to change one Personal Geo-database projection to another. Kindly give me instructions to re-project vector data.


title: Programming a geoweb application for cloud. What does it imply?

text: I've recently started to develop a geoweb application using GeoDjango + PostGIS in the backend, HTML5 + JS in the frontend. I'm really at the beginning, so, I have time to change a lot of things. Basically, I want to store raster/vector data, allow some basic operations over them and visualize the result. Simplified, translate the concept of a Desktop GIS (QGIS, OpenJUMP...) to the web My big issue right now is I'd like to operate over a cloud infrastructure, but I'm not sure of the implications from a developer point of view. I'm learning about the concept "Dev-Ops", and I've read some articles, like this, but I'm afraid of doing things wrong, because I never built an application specially conceived to be deployed in a Cloud infrastructure before. And I don't want to incur in an "analysis paralysis" situation. For example, should I first care about installing PostGIS in a Cloud infrastructure and test how to scale it? I think my problem is I don't know what kind of things are pure "developer things" and what kind of things are "enviroment configuration". And how to mix them. What comes first, what comes next, etc. Any advice is welcome. Many thanks in advance.


title: Create MultiPolygon from QgsGeometry.fromMultiPolygon

text: I have a list of polygons' points like               [[x1,y1],[x2,y2],[x3,y3],[x4,y4]]   [[x5,y5],[x6,y6],[x7,y7].[x8,y8]]      now I want to create multipolygon from it by using               feature = QgsFeature()     feature.setGeometry(QgsGeometry.fromMultiPolygon([polygon_points]))      but it return a error               TypeError: QgsGeometry.fromMultiPolygon(): argument 1 has unexpected type 'list'      So how to make it right type for `QgsGeometry.fromMultiPolygon()`? or maybe I am wrong with something? ======================Newly Update====================================== following is my point list Points_list My code read this list by               read_polygon=open('shapes_point.txt','rb')     polygons=[]     polygon_lines=read_polygon.readlines()  #read all polygons     for line in polygon_lines:              #read per polygon in polygons       for points in line:                   #read per point in polygon             x=points[0]             y=points[1]             Qgs_point=QgsPoint(float(x),float(y))             polygons.append(Qgs_point)     feature = QgsFeature()     feature.setGeometry(QgsGeometry.fromMultiPolygon((QgsGeometry.fromMultiPolygon([polygons for polygon in polygons]))))      and return me error above Thanks for help! ===================================================== I will try to make it more details I want to read a shape file in a dialog box After some calculate progress , I will put values in each polygon features following is the main problem I have now! I have the shapefile , and I want to fill it with color by values But the method I only know is make a new polygon shapefile and append value to it I don't know how to append the value in the selected polygon shapefile So I use               feature = QgsFeature()     feature.setGeometry(QgsGeometry.Polygon([polygon_points]))      but it's always crash in multipolygons so I want to know how to make multipolygons function need ?


title: Using python elif syntax in Field Calculator to reclassify a range of values from a different field and populate a new field

text: I'm trying to use the Field Calculator with a python elif statement to reclassify values from a different field and populate a new field, and while I'm not getting an error message of any kind, I'm also not getting any sort of result. In other words, the tool runs and it says that it succeeded but nothing has changed in the column that is being calculated. In codeblock example below the column that I want to use the elif statement on is "pa_gNyr_ha" and the new column that I want to populate is "N_load_bin".               def Reclass(Nload):       if (Nload >= 0 and Nload <= 10000):            return 5000         elif (Nload > 10000 and Nload <= 24000):             return 17000         elif (Nload > 24000 and Nload <= 40000):             return 37000       elif (Nload > 40000 and Nload <= 58000):         return 50000       elif (Nload > 58000 and Nload <= 74000):         return 66000       elif (Nload > 74000 and Nload <= 90000):         return 82000       elif (Nload > 90000 and Nload <= 104000):         return 97000       elif (Nload > 104000 and Nload <= 118000):         return 111000       elif (Nload > 118000 and Nload <= 130000):         return 124000       elif (Nload > 130000 and Nload <= 142000):         return 136000       elif (Nload > 142000 and Nload <= 157000):         return 149500       elif (Nload > 157000 and Nload <= 173000):         return 165000       elif (Nload > 173000 and Nload <= 189000):         return 181000       elif (Nload > 189000 and Nload <= 210000):         return 194500       elif (Nload > 210000 and Nload <= 233000):         return 221500       elif (Nload > 233000 and Nload <= 261000):         return 242000       elif (Nload > 261000 and Nload <= 299000):         return 280000       elif (Nload > 299000 and Nload <= 356000):         return 327500       elif (Nload > 356000 and Nload <= 456000):         return 406000       elif (Nload > 456000):         return 501500      And then the expression is               Reclass(!pa_gNyr_ha!)      Essentially what I'm trying to do is create a conditional statement that will look at a value in the "pa_gNyr_ha" field and return a value to the "N_load_bin" field based on the range it falls into. Am I at least close?


title: QGIS; Is it possible to show layer name in attribute table in print composer?

text: When adding attribute tables in the print composers it is not possible to distinguish between various tables from various layers; each table is generic and does not indicate which layer the table is from. Is there a simple way to add an additional header or even a caption to indicate the source layer?


title: Making a Bridge Classification tool in GRASS GIS

text: I'm working on a tool for classifying bridges with GRASS. I have been using examples online but I've come to a standstill as how to actually make this tool in GRASS. I have my raster of my area and tagged bridged areas with a shapefile but I'm not sure what else I need to do. I've been told to use the R statistical package so if any one has any knowledge with that then I would greatly appreciate it. Thank you!


title: How to list the ISO 3166 countries with java.util.Locale?

text: Our IT system should list all the countries in the world and when I fetch it from the system it becomes 249 names but the newest country South Sudan ("SS") is not in the list, so I wonder what the difference is between the ISO 3166 countries and my list, which is also 249 countries but it doesn't have South Sudan (while it includes Montenegro).                       Map<String, String> countryList = new LinkedHashMap<>();             for (String countryCode : Locale.getISOCountries()) {                     Locale obj = new Locale("", countryCode);                     countryList.put(obj.getCountry(), obj.getDisplayCountry(locale));                  }             System.out.println("Number of countries:"+countryList.size());             System.out.println("Countries"+countryList);      Output:               Number of countries::249     Counties:{AD=Andorra, AE=United Arab Emirates, AF=Afghanistan, AG=Antigua and Barbuda, AI=Anguilla, AL=Albania, AM=Armenia, AN=Netherlands Antilles, AO=Angola, AQ=Antarctica, AR=Argentina, AS=American Samoa, AT=Austria, AU=Australia, AW=Aruba, AX=Åland Islands, AZ=Azerbaijan, BA=Bosnia and Herzegovina, BB=Barbados, BD=Bangladesh, BE=Belgium, BF=Burkina Faso, BG=Bulgaria, BH=Bahrain, BI=Burundi, BJ=Benin, BL=Saint Barthélemy, BM=Bermuda, BN=Brunei, BO=Bolivia, BQ=Bonaire, Sint Eustatius and Saba, BR=Brazil, BS=Bahamas, BT=Bhutan, BV=Bouvet Island, BW=Botswana, BY=Belarus, BZ=Belize, CA=Canada, CC=Cocos Islands, CD=The Democratic Republic Of Congo, CF=Central African Republic, CG=Congo, CH=Switzerland, CI=Côte d'Ivoire, CK=Cook Islands, CL=Chile, CM=Cameroon, CN=China, CO=Colombia, CR=Costa Rica, CU=Cuba, CV=Cape Verde, CW=Curaçao, CX=Christmas Island, CY=Cyprus, CZ=Czech Republic, DE=Germany, DJ=Djibouti, DK=Denmark, DM=Dominica, DO=Dominican Republic, DZ=Algeria, EC=Ecuador, EE=Estonia, EG=Egypt, EH=Western Sahara, ER=Eritrea, ES=Spain, ET=Ethiopia, FI=Finland, FJ=Fiji, FK=Falkland Islands, FM=Micronesia, FO=Faroe Islands, FR=France, GA=Gabon, GB=United Kingdom, GD=Grenada, GE=Georgia, GF=French Guiana, GG=Guernsey, GH=Ghana, GI=Gibraltar, GL=Greenland, GM=Gambia, GN=Guinea, GP=Guadeloupe, GQ=Equatorial Guinea, GR=Greece, GS=South Georgia And The South Sandwich Islands, GT=Guatemala, GU=Guam, GW=Guinea-Bissau, GY=Guyana, HK=Hong Kong, HM=Heard Island And McDonald Islands, HN=Honduras, HR=Croatia, HT=Haiti, HU=Hungary, ID=Indonesia, IE=Ireland, IL=Israel, IM=Isle Of Man, IN=India, IO=British Indian Ocean Territory, IQ=Iraq, IR=Iran, IS=Iceland, IT=Italy, JE=Jersey, JM=Jamaica, JO=Jordan, JP=Japan, KE=Kenya, KG=Kyrgyzstan, KH=Cambodia, KI=Kiribati, KM=Comoros, KN=Saint Kitts And Nevis, KP=North Korea, KR=South Korea, KW=Kuwait, KY=Cayman Islands, KZ=Kazakhstan, LA=Laos, LB=Lebanon, LC=Saint Lucia, LI=Liechtenstein, LK=Sri Lanka, LR=Liberia, LS=Lesotho, LT=Lithuania, LU=Luxembourg, LV=Latvia, LY=Libya, MA=Morocco, MC=Monaco, MD=Moldova, ME=Montenegro, MF=Saint Martin, MG=Madagascar, MH=Marshall Islands, MK=Macedonia, ML=Mali, MM=Myanmar, MN=Mongolia, MO=Macao, MP=Northern Mariana Islands, MQ=Martinique, MR=Mauritania, MS=Montserrat, MT=Malta, MU=Mauritius, MV=Maldives, MW=Malawi, MX=Mexico, MY=Malaysia, MZ=Mozambique, NA=Namibia, NC=New Caledonia, NE=Niger, NF=Norfolk Island, NG=Nigeria, NI=Nicaragua, NL=Netherlands, NO=Norway, NP=Nepal, NR=Nauru, NU=Niue, NZ=New Zealand, OM=Oman, PA=Panama, PE=Peru, PF=French Polynesia, PG=Papua New Guinea, PH=Philippines, PK=Pakistan, PL=Poland, PM=Saint Pierre And Miquelon, PN=Pitcairn, PR=Puerto Rico, PS=Palestine, PT=Portugal, PW=Palau, PY=Paraguay, QA=Qatar, RE=Reunion, RO=Romania, RS=Serbia, RU=Russia, RW=Rwanda, SA=Saudi Arabia, SB=Solomon Islands, SC=Seychelles, SD=Sudan, SE=Sweden, SG=Singapore, SH=Saint Helena, SI=Slovenia, SJ=Svalbard And Jan Mayen, SK=Slovakia, SL=Sierra Leone, SM=San Marino, SN=Senegal, SO=Somalia, SR=Suriname, ST=Sao Tome And Principe, SV=El Salvador, SX=Sint Maarten (Dutch part), SY=Syria, SZ=Swaziland, TC=Turks And Caicos Islands, TD=Chad, TF=French Southern Territories, TG=Togo, TH=Thailand, TJ=Tajikistan, TK=Tokelau, TL=Timor-Leste, TM=Turkmenistan, TN=Tunisia, TO=Tonga, TR=Turkey, TT=Trinidad and Tobago, TV=Tuvalu, TW=Taiwan, TZ=Tanzania, UA=Ukraine, UG=Uganda, UM=United States Minor Outlying Islands, US=United States, UY=Uruguay, UZ=Uzbekistan, VA=Vatican, VC=Saint Vincent And The Grenadines, VE=Venezuela, VG=British Virgin Islands, VI=U.S. Virgin Islands, VN=Vietnam, VU=Vanuatu, WF=Wallis And Futuna, WS=Samoa, YE=Yemen, YT=Mayotte, ZA=South Africa, ZM=Zambia, ZW=Zimbabwe}      The difference between my `java.util.Locale.getISOCountries` and ISO 3166 seems to be that 1) java doesn't include countrycode SS for South Sudan and 2) Java doesn't exclude coutrycode AN (Netherland Antilles). Here you can see the execution: http://ideone.com/TYipMG


title: Using FME to Parse An Attribute Field

text: I have a table that contains a field with street names. Each street name ends with the street type. Fore example, Washington St, Happy Valley Rd, Redstone Dr. I need to extract the last part of the street name and have it populate a field called Street Type. I been trying to use the AttributeSplitter transformer but it only splits strings according to a delimiter (in this case it's a space), but this does not work. Any suggestion on using a different transformer or combination of transformers? Solutions need to be in FME as this task is part of a greater workflow.


title: Open Source Tools for Swept-Path Analysis?

text: Before I spend time writing something, does anybody know of any open source tools to perform swept-path analysis (preferably suitable to run on Windows and a Python API would be a bonus)? I pretty sure I can figure it out, but I'd rather not re-invent the wheel if I don't have to. Thanks


title: Looking for a World Airport Database

text: I'm looking for a database that contains all (most, many...as many as it can) world airports. I know of one such set available - http://www.world-airport- database.com/database.php - but the terms state that it's for internal use only...which kind of defeats the purpose. The data would need to have the airport code, name, location (country, city, state/locale, zip/postal, lat/lon). Do you know of such a set? Certainly willing to purchase such a set, free is always great too. Thank you


title: How to find bounding coordinates (lat/long) for UTM zones?

text: I want to error check incoming lat/lng points by checking if the point resides within the given UTM zone. (This would work for the data im using because sometimes there is a missing sign or lat/lng is reversed and the UTM zone can still be correct) So given a UTM zone, how would you find the bounding coordinates for that zone?(Either the lat/lng for SW and NE corners or a range of lat/lng values for a given zone) Also: Since I am supplied with both UTM and lat/lng I can convert both and cross compare as a way to validate incoming points but I thought it would be interesting to know how to calculate a UTM zone's bounding box in lat/lng form just given a zone (and possibly a hemisphere).


title: How to calculate the Azimuth between two points in PostGIS?

text: I have a GIS API based on OpenLayers. I have been trying to implement Azimuth calculation in JavaScript and I needed some way to calculate the Azimuth in order to perform tests. I started using PostGIS, but there seem to be many ways to calculate the Azimuth between two points. I show you three of them and, some return different results.               -- Example 1 - Result 90          select st_azimuth(     st_transform(st_geomfromtext('POINT(-81328.998084106 7474929.8690234)', 900913), 4326),     st_transform(st_geomfromtext('POINT(4125765.0381464 7474929.8690234)', 900913), 4326)     )/pi()*180          -- Example 2 - Result 155.692090425822     SELECT degrees(     ST_Azimuth(     ST_MakePoint(-81328.998084106, 7474929.8690234)::geography,     ST_MakePoint(4125765.0381464, 7474929.8690234)::geography)     )          -- Example 3 - Result 90          SELECT degrees(     ST_Azimuth(     ST_MakePoint(-81328.998084106, 7474929.8690234),     ST_MakePoint(4125765.0381464, 7474929.8690234))     )      What is the correct way to calculate the Azimuth in PostGIS? Of course, I want to consider geodesic coordinates. Is there a way to know how PostGIS realizes the calculations? I mean, is it possible to see the way the "ST_Azimuth" function is implemented?


title: Exporting from ArcGIS 10.2 to PDF for editing in Inkscape-Where are the layers?

text: I'm trying to export a simple street map with markers from ArcGIS 10.2 to PDF for editing in Inkspace (Note: I've tried this with exports to .ai and SVG as well with results similar to those recounted below). I'm somewhat new to Inkscape having mostly used AI for polishing, but would like to give this FOSS option a try. The odd thing I'm coming across is that while the PDF loads well in Inkscape, the layers tab either shows no layers or one for the whole map. Either way there is no listing of the different items (streets, labels, markers, etc.) in the map, nor groups. I can select items in the map and manipulate them individually, but as far as I can tell, that's about it. It seems a lot of people are using Inkscape so I'm guessing I'm just overlooking something here, but how do I access the individual elements in the map from that layers tab? Thanks!


title: What are some Free and Open Source GIS Desktop packages

text: Can someone please give me a list of free and open source GIS desktop packages?


title: I need help with CartoDB, time slider and general concepts.

text: I would like to have some help/advice concerning a mapping project with CartoDB. English is not my first language, so sorry for any syntax bug. Here's the background. I have a degree in GIS/geomatic, but I never had any extensive course in programming, especially web-based like html and JavaScript. Only thing I did was a very simple map using Openlayer 3 years ago. So my programming skills are limited. This is why I choosed to subscribe to CartoDB, I like the look and feel and it is simple. I finally had my data a couple days ago and I am unable to do what I want, because I'm not sure where to start. I thought I could do everything I wanted for my first map in the CartoDB dashboard but now, I'm not sure. I think I am starting to understand the difference between the dashboard and the CartoDB.js. My dataset is 120 events that I georeferenced based on the city and the country. Events goes from 2000 to 2014. I have a start_date field that was yyyy-mm-dd and that is now yyyy-mm-ddThh:mm:ssZ since I changed the datatype to date in the table dashboard. What I want to do is a map that show the events per year, with a button/slider that the user can play with to switch the year. I don’t want the map to be animated with torque, but since I tried torque when I was looking for the best solution for me and that torque has an integrated slider, I thought it would be pretty simple to add a slider in my map using the dashboard. Since the complete date is not needed, I added a number field with only the year, 2000-2014. So basically, I want the map to have a slider that is set to 2000 at the far left, and 2014 at the far right. If the user put the slider at the far right, select * from mytable where year = 2014. That would show the points with 2014 in the year field. I want the user to have a simple slider to play with the filter. -Before I put more time into learning the basic of .js and .html since the only timeslider exemple I found is in that format, would it be possible to do what I want with the CartoDB dashboard using the CSS and SQL tab ?  -If not, do anyone knows a slider/button code example that doesn’t have a range feature like this example? http://htmlpreview.github.io/?https://github.com/CartoDB/cartodb.js/blob/develop/examples/time_slider.html -I will do what is necessary, I just don’t want to spend a lot of time in more complex methods if what I need can be done using only the CartoDB dashboard.  -I will have further questions depending of the way I should go for my map. -Bonus question, is there a way in the CSS tab in the CartoDB dashboard to implement something that split a point into more points when a user click on it. Since I georeferenced with the city/countryname, for each year, I have a couple of cities that host more than one event. At the moment, I see a point on the city but I can't select the others because they are under it. I am doing a infowindows with informations on the event so I need to show all the events related to that localisation when the user click on it, then after another click, the right infowindows will open with the right data. I thing google earth do what i'm trying to explain when a .KML has overlapping points.  Tanks for your time and don’t hesitate if something I said is not clear. Mathieu


title: How to create a polygon based on view extent in QGIS 1.8 ?

text: I am looking for a very simple thing. I want to create a polygon based on the current view extent of my project. In fact I want to               1) open google satellite layers      2) zoom to my area of interest     3) create a polygon based on the 'view extent'      of course, the GE layer is not important, it should work with any view.


title: What embeddable web-based maps exist?

text: Some of the ones I'm familiar with (in no particular order): * Google Maps (http://code.google.com/apis/maps/index.html)  * Bing Maps (http://www.microsoft.com/maps/developers/)  * Yahoo Maps (http://developer.yahoo.com/maps/)  * MapQuest (http://developer.mapquest.com/)  * OpenLayers (http://openlayers.org/)  * WorldWind Java (http://worldwind.arc.nasa.gov/java/)  * OpenMap (http://www.openmap.org/)  Are there others that I'm missing?


title: Export Data Driven Pages extents to Kmz

text: Is it possible to export the extents of DDP to KMZ using arcpy - Map to KML (Conversion)? Alternatively can we export each extent of a single DDP extent to a new mxd and then run arcpy.MapToKML_3d on each of these temporary mxds? http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00120000004p000000 - doesn't seem to allow one to use it with DDP. For converting each ddp extent to an mxd I found -               import arcpy, os     mxdPath = r"C:\Project\DDPMap.mxd"     mxd = arcpy.mapping.MapDocument(mxdPath)     mxdDir = os.path.dirname(mxdPath)     for pageNum in range(1, mxd.dataDrivenPages.pageCount + 1):         mxd.dataDrivenPages.currentPageID = pageNum         mxdName = os.path.join(mxdDir, "DDPMap" + str(pageNum) + ".mxd")         mxd.saveACopy(mxdName)     del mxd      but have not tried it yet...I would prefer not to have the overhead of creating mxd's unnecessarily. ==== Scale bar size/text issues when using ddp ![Ok scale text](http://i.stack.imgur.com/fs8ff.jpg)![Not ok -should be 300 or 250 not 280 ](http://i.stack.imgur.com/mhZaR.jpg)![Not ok -should be 50 not 40](http://i.stack.imgur.com/oNtI1.jpg) So the width needs to change so that the text is 100/50 value.


title: Adding MySQL to Geoserver for Non-Spatial Data

text: I need to connect to a MySql table, which has all the attribute values and the lat & long. I am using a GeoServer Suite to host my raster and so felt the best way to go about it would be to add the MySQL to my Geoserver, but it seems, geoserver comes with Postgres by default. Is there any My SQL extension to geoserver? Is this the best approach to obtain the info from a MySql database? **UPDATE: Ok so what I am trying to do is eventually migrate my Database to PostGIS. So I am trying to create a shapefile from MySQL database. The database has non-spatial data with the lat and long associated with each attribute data. I found pyshp, but i think that is reading the shape file. Can we create shapefile using the pyshp (meaning can we create shapefile from MySQL database using pyshp)? Becoz if i am able to create the shapefile then I can easily insert it into PostGIS using geoServer and it can be used in other softwares as well.**


title: looking for open source Java SE map viewer library that work with osm files or osm pre-downloaded tiles

text: I am new here and I hope I can find answers to my question here! I am developing a mapping platform for desktop, web, mobile (Android). I finally finished embedding mapping into my android software using osmdroid library. Now I want to start Java desktop part and I want to know is there any open source library like osmdroid or mapsforge for Java SE? Thanks in advance.


title: Drawing aerial routes for flights on Google Maps API between two markers?

text: I have been drawing route till now using DirectionService. But now my current requirement is to **draw a route on air**.I did some research and found this link which helps us to draw curved polylines between two markers. But how do we make sure that this can be the exact flight route between two markers?. Completely Blank. What i want to do is something like this...Is there any good example to start with for drawing routes between two airports and animating a flight between the markers...Any help will be very much appreciated. Thanks in advance.


title: ArcGIS Engine--load mxd file to map control or pagelayout control?

text: When load a mxd file using ArcGis engine,how to automatically detect whether it's saved in mapcontrol or pagelayout control?Thanks!


title: Performing buffering and intersection with script in PyQGIS

text: I wrote a script that performs the intersection of two layers:   * The first Layer -> `layer1`, represents the rivers   * The second Layer -> `layer2`, represents a set of circular dots distributed in a geographical area (at each point corresponds to a numeric value that exceeds a threshold value) The result of the intersection should be highlighted with an operation of buffering. The new geometry obtained with Intersection + Buffering should produce a layer that surrounds the traits of the rivers and the point or more points that intersect. ![enter image description here](http://i.stack.imgur.com/U2X0P.png) Writing from console PyQGIS I have not encountered any errors. To see the new geometry I added new layers to the previous ones (from "add vector layer") but I have not seen anything new. This is the code of my script:               from qgis.core import *     from qgis.gui import *          canvas = qgis.utils.iface.mapCanvas()          layers = canvas.layers()     layer1 = canvas.layer(0)     layer2 = canvas.layer(3)          from qgis.analysis import *          overlayAnalyzer = QgsOverlayAnalyzer()     overlayAnalyzer.intersection(layer1, layer2, "/home/..../Scrivania/..../output.shp")          layer3 = canvas.layer(0)          geometryanalyzer = QgsGeometryAnalyzer()     geometryanalyzer.buffer(layer3, "/home/..../Scrivania/..../buffer.shp", 500, False, False, -1)


title: How to load a SVG-File from QRC

text: I have a vectorlayer and want to give the points a svg-symbol. If I give the constructor an absolute path to my svg-file it works fine. Then i put the svg to my ressource file (qrc) and try to load it from there it doesn't work. Maybe I'll have to load the file into a QIcon? But how can I get it then in the layer? I've read something about QSvgCache but I see no way to use it. Can anyone help me?                           //QString name="E:\\Entwicklung\\QGis\\Quantum-GiS\\src\\plugins\\adresssuche\\haus.svg";                 QFile svg(":/adresssucheplugin/haus.svg");                 QString name=svg.fileName()                 qDebug()<<name;                 QgsSvgMarkerSymbolLayerV2* p_svgSymbolLayer(0);                 p_svgSymbolLayer= new QgsSvgMarkerSymbolLayerV2(svg.fileName(), DEFAULT_SVGMARKER_SIZE, DEFAULT_SVGMARKER_ANGLE);


title: Irrational feature ID behavior in a PyQgis script

text: I've written a script to determine the coordinates of a point shapefile and insert them into its attribute table. It works perfectly when the ID sequence of the indiviual features begins with 0, yet when the scheme begins with a number other than 0 the coordinate pairs are returned as null. I can't trace the problem in the script because I when I enter the commands interactively in the console, it works perfectly. Here is the code as it appears in the script:               import PyQt4          cLayer = qgis.utils.iface.mapCanvas().currentLayer()     LenFields = len(cLayer.pendingFields()) # to determine where x,y will go in the table     provider = cLayer.dataProvider()     caps = provider.capabilities()          names = ["Longitude", "Latitude"]         for i in names:             ind = provider.fieldNameIndex(i)             try:                  if ind == -1:                     if caps & QgsVectorDataProvider.AddAttributes:                         res = provider.addAttributes([QgsField(i, PyQt4.QtCore.QVariant.Double)])             except:                 print False          cLayer.commitChanges() # Need to create the Attributes before they can be populated          cLayer.startEditing()     for f in cLayer.getFeatures():         cLayer.changeAttributeValue(f["ID"], LenFields, f.geometry().asPoint()[0]) #Longitude         cLayer.changeAttributeValue(f["ID"] , LenFields+1, f.geometry().asPoint()[1]) #Latitude          cLayer.commitChanges()      Can anyone see where the problem comes from? Furthermore any suggestions how to make the code more robust to irregular ID sequences are greatly appreciated. Thanks in advance.


title: How to cut a polygon without snapping to a vertex?

text: I am familiar with editing polygon files in QGIS version 1.8. I have recently upgraded to version 2.0 but there seems to be a difference in the way it processes cuts. I used to be able to cut a polygon in two by clicking outside the polygon, within the polygon and then out the other side. It did not matter whether I snapped to a vertex when I crossed the outer line. However this does not work in version 2.0. It will only cut when there is an existing vertex on the outer edge. Has anyone found how to get round this? It is just frustrating to get to the end of a very long cut and find you cannot finish it because there is no vertex in the right place! Any suggestions gratefully recieved.


title: I wish to reproject a hypertile image from GDA94/Zone 55 to a flat planar image

text: please bear with this newbee as I am just getting into this extremely interesting field. My Problem: I have setup Hypertiles to use the GDALCompress batch file to mosaic my image - all good so far - but the coordinate systems they have available do not allow me to download an image to a planar coordinate system. I have used the GDA94/Zone 55 coordinate system as this is the appropriate one for our neck of the woods but I now need to reproject my image to a planar system. My Question: How do I set up GDALwarp to do this? I am not familiar with the command line switches and syntax that is used. I also know that there is a scale factor of 0.996 applied to my image - does this have to be changed to 1.0? Cheers Newbee (A little knowledge is a dangerous thing.)


title: Map tips Flashing

text:
I am using some very basic html in a point shapefile's layer properties to display a photo.                [% "filename" %]

      It will display fine, but it flashes. By flashing I mean when I hover the mouse of the point, the map tip with the image comes up, but within a second or 2 it will disappear. If I leave the mouse there, it will flash like this none stop. I have noticed that it is only when trying to insert an image. With other shape files in which text is displayed it works fine. Anybody know why it is doing this? Could the image file be to large? Its a .jpg at 1024x576 resolution. * * * Actually, the issue is occurring if the point is in the center of the window. Its almost like the map tip pop up is "interrupting" itself.


title: How to make polygon shapefile containing WGS 84 UTM zones as features?

text: I need a shapefile with polygon features. Each feature has to be a unique UTM zone (each zone is 6 degrees) in the northern hemisphere. I have no idea how to make it - **Create fishnet** gives a wrong result, and making it by hand is a time consuming operation. How to automate this, or maybe download shapefile somewhere?


title: Looking for all points in a square around a given point in PostGIS

text: For a given point (x,y), I would like to find all the points in the neighborhood (defined by myRadius, a number, in meters). For now, I'm using a circle around each point, but some reason, I'd like to draw a square around each point instead of a circle (square in the orientation of x-y coordinates). Command I use for the circle (distance):               SELECT * FROM table_of_points WHERE (ST_Transform(the_geom,21781) && ST_expand(ST_SetSRID(ST_GeomFromText('Point(x y)'), 21781), myRadius )      For the square, can I use:               SELECT * FROM table_of_points WHERE (ST_Transform(the_geom,21781) && ST_MakeEnvelope(x-myRadius, y-myRadius, x+myRadius, y+myRadius, 21781 ) )      It works, but I'm just wondering if it's the fastest way of doing this.


title: How to calculate corner coordinates of static Google Map image using PHP?

text: How can I calculate the corner coordinates of a static Google Map image, like the one fetched with this **URL** , using a little PHP script?


title: QSpatialite : import multiple TXT/CSV

text: I'm using QSpatialite only. I don't have spatialite-gui neither the shell. I want to import multiple TXT/CSV at one time. How is it possible to do that ? I found nothing on the internet. Thanks


title: Why do layers appear in the wrong order in QGIS 2.2?

text: I have a problem with in which order my vector and raster layers appear in QGIS. I have raster that I want to be the background of my other layers (vector). I place the vector layers on top in the TOC, but some of them still end up under the raster layer in the display? I have check there projection and that's the same for all layers. I have also tried putting the raster layer on top in the TOC, but the resault is still the same. I just want to show a few vector layers on top of a raster, but in this version something goes wrong. I have never had any trouble with this in earlier version of QGIS. Any ideas on how to solve this?


title: Translating to Raster Calculator?

text: I am taking the Learning Spatial Analyst course, which is very good but written for Version 9. I and my students are using Version 10, so some of the syntax for Raster Calculator have changed. Can anyone assist with translating these commands to Raster Calculator or point me to a document that updates them for Learning Spatial Analyst 9? The concepts are being emphasized in the course but its hard to get them without seeing the exercise results. CON([DamBasin] AND ([DamElev] <= 790), 790) CON(ISNULL([Reservoir]),[DamElev],790) SetNull([Ownership] <> 200 OR [Soil] == 901, 1)


title: Installing QGIS on Mac OS 10.7. "The GDAL framework is required.", and yet I have it

text: what did I miss? I'm trying to install QGIS on my MacBook (Mac OS 10.7). I'm following these instructions: https://sites.google.com/site/eospansite/qgis- installation/installing-qgis-1-6-on-macosx It says to first install GDAL following these instructions: https://sites.google.com/site/eospansite/installinggdalonmacosx I installed GDAL but when I come to install QGIS I click on the QuantumGIS.pkg and it opens the install dialogue box but with a warning "The GDAL framework is required." I know that GDAL is there, I can see it in /Library/Frameworks/GDAL.framework/ so I wonder if exporting the path didn't work. Anyone know how to check that? Or anyone know of anything else I may have overlooked? Thanks.


title: ArcGIS: Can you add attributes to a relationship class at a later date?

text: I have a relationship class that could use a new attribute (or two or three). I have looked for a way to do this in ArcCatalog and have not discovered it yet. I have:   1. Opened the Relationship Class Properties by right clicking on the Relationship class.    2. Previewed the Relationship Class and right-clicked in the Column Headings.    3. Looked in ArcToolbox>Data Management Tools>Relationship Classes.  None of these attempts have resulted in a new attribute. If anyone knows how to do this, I would appreciate an answer!


title: ArcGIS 10 querying Oracle 10g without SDE

text: I'm interested to see if anyone has successfully got this setup working, and if so how many sacrifices were required and to which deities. I am hoping to ultimately get ArcGIS Server 10 serving map services with Oracle 10g data without involving SDE at all. Right now I'm just trying to get ArcMap 10 to show me some data. Based on ESRI's documentation I believe this should be possible but the docs don't cover the problems I'm having. My machine has the Oracle 11gR2 client and this is reportedly compatible with 10g. All machines involved are 32-bit only, so the 64-bit specific Oracle connection problems don't concern me (yet). I can sqlplus to the DB with the same connection parameters. My table looks like this:               create table arc_ora_test_2 (       m_id int primary key,       attr_1 int,       attr_2 int,       shape SDO_GEOMETRY     );          INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)        VALUES ('arc_ora_test_2', 'shape',        SDO_DIM_ARRAY          (SDO_DIM_ELEMENT('LONG', -180.0, 180.0, 0.0000005),          SDO_DIM_ELEMENT('LAT', -90.0, 90.0, 0.0000005)),        4326);          CREATE INDEX arc_ora_test_2_spatial_idx_1     ON arc_ora_test_2(shape)     INDEXTYPE IS MDSYS.SPATIAL_INDEX;      From what I can gather, in ArcCatalog 'Add Spatial Database Connection' is exclusively for SDE-enabled databases, so I'm not using this. For the OLE DB connection I've tested both the Microsoft OLE DB for Oracle and Oracle OLE DB providers. Both succeeed the test connection to the DB. However... Microsoft OLE DB for Oracle connection cannot list available tables, reporting 'General Function Failure' Oracle OLE DB connection can list tables, but when I try to render the data I am told 'An invalid SQL statement was used' This second (Oracle provider) connection gets furthest but it seems that ArcMap is not writing SQL properly, which is odd as there are no definition queries or other filters - this is simply a 'show me everything' query which presumably has a bounding box in the where clause. Is it possible that the existence of the 11gR2 client is tricking ArcMap into thinking it needs to write 11gR2-compatible queries? Is there any significant difference between 10g and 11gR2 for spatial queries? Any thoughts on this dilemma would be very much appreciated.


title: Is it possible to edit Delimited Text Layers in QGIS?

text: GIS beginner here... I have a tab-delimited text file that I'm importing into QGIS just fine. But I try to edit the attribute table, the little pencil-looking button is grayed out, and it's not letting me edit it via the QuickMultiAttributeEdit plugin either. I've googled around a lot, but can't for the life of me figure out how to make the attribute table editable. Any help? Thanks all!


title: Where can I find historic country border data?

text: I am looking for border polygons from World War I (from 1914-1918). Is there a resource out there that maintains this kind of information? Any help would be greatly appreciated!!


title: Error occured decoding the epsg code - 3857 (Web Mercator)

text: I'm trying to add the following wms service to QGIS using EPSG:3857 and get the following error: Service (running on L/A/P/P geoserver):               http://66.228.57.208/geoserver/wms?tiled=true or non-cached http://66.228.57.208/geoserver/wms      Layer:               Carto_Basemap_WGS84WM layer group (presented in 3857 which contains ~ 8 layers all in 3857)      Error:               Response: <?xml version="1.0" encoding="UTF-8"?><ServiceExceptionReport     version="1.3.0" xmlns="http://www.opengis.net/ogc"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://66.228.57.208:80/geoserver/schemas/wms/1.3.0/exceptions_1_3_0.xsd">   <ServiceException code="InvalidCRS">       Error occurred decoding the espg code urn:x-ogc:def:crs:EPSG:3857     Database failure while creating a 'CoordinateReferenceSystem' object for code "EPSG:3857".     Connection is closed      Help!


title: How can I automatically split a spatial layer to a grid

text: > **Possible Duplicate:**   >  Divide vector in equal smaller parts in QGIS or similar I am a software engineer and the company I work for has a project that needs some spatial data manipulation in order to provide routes to users. The client has provided me the spatial layer through a Microsoft SQL Server 2008, encoded as geometry polygons. The table is as: zone_id (int), zone_geometry (geometry). In order to make the routing algorithm more precise, I need to split each zone in tiles, so I thought that I need to divide the each zone to a grid. Is there an automated way to do this? Are there any references or any wiki for what I need? I searched the answers in the stack exchange but to be honest I could not understand because I have no previous experience with GIS. Thank you


title: Problem entering stops in a published multimodal network service

text: I have created a multimodal network that works fine in Desktop, but my question is more related to publishing a multimodal network dataset as a network service. I have looked for an example of this, but have failed to find one. When the multimodal dataset is published, I have entered x,y coordinates already confirmed and working in Desktop, yet I am receiving an error when I try to return the route saying the stops are not valid. Do I need to send an attribute with the feature to identify which mode that geometry should snap to? I am using ArcGIS 10.1 REST API.


title: errors while downloading a gis - file

text: i have serious errors with the download of a osmosis file see the terminal-code - sorry for presenting this in German...               Kann nicht nach »»niedersachsen-latest.osm.pbf«« schreiben (Keine Berechtigung).     martin@linux-70ce:~/osmosis> ./osmconvert hamburg-latest.osm.pbf --all-to-nodes -o=hamburgsport.o5m     osmconvert Error: could not open output file: hamburgsport.o5m     martin@linux-70ce:~/osmosis> ./osmfilter hamburgsport.o5m --keep="amenity=sport" -o=hamburgsport.o5m     osmfilter Error: could not open input file: hamburgsport.o5m     martin@linux-70ce:~/osmosis> ./osmconvert hamburgsport.o5m --csv="@id @lon @lat sport" --csv-headline -o=hamburgsport.csv     osmconvert Error: could not open input file: hamburgsport.o5m     martin@linux-70ce:~/osmosis> wget download.geofabrik.de/openstreetmap/europe/germany/bremen-latest.osm.pbf     --2014-04-21 08:35:34--  http://download.geofabrik.de/openstreetmap/europe/germany/bremen-latest.osm.pbf     Auflösen des Hostnamen »download.geofabrik.de (download.geofabrik.de)«... 144.76.34.132, 144.76.4.22, 5.9.158.99     Verbindungsaufbau zu download.geofabrik.de (download.geofabrik.de)|144.76.34.132|:80... verbunden.     HTTP-Anforderung gesendet, warte auf Antwort... 301 Moved Permanently     Platz: http://download.geofabrik.de/europe/germany/bremen-latest.osm.pbf[folge]     --2014-04-21 08:35:34--  http://download.geofabrik.de/europe/germany/bremen-latest.osm.pbf     Wiederverwendung der bestehenden Verbindung zu download.geofabrik.de:80.     HTTP-Anforderung gesendet, warte auf Antwort... 200 OK     Länge: 10937291 (10M) [application/octet-stream]     bremen-latest.osm.pbf: Keine Berechtigung          Kann nicht nach »»bremen-latest.osm.pbf«« schreiben (Keine Berechtigung).     martin@linux-70ce:~/osmosis>       what kind of errors do we have here **EDIT: English Translation** (from Google Translate)               Unable to find »» lowersaxony-latest.osm.pbf «« writing ( not authorized ) .     martin@linux-70CE:~/osmosis> ./osmconvert hamburg-latest.osm.pbf --all-to-nodes -o=hamburgsport.o5m     osmconvert Error: could not open output file: hamburgsport.o5m     martin@linux-70CE:~/osmosis> ./osmfilter hamburgsport.o5m --keep="amenity=sport" -o=hamburgsport.o5m     osmfilter Error: could not open input file: hamburgsport.o5m     martin@linux-70CE:~/osmosis> ./osmconvert hamburgsport.o5m --csv="@id @lon @lat sport" --csv-headline -o=hamburgsport.csv     osmconvert Error: could not open input file: hamburgsport.o5m     martin@linux-70CE:~/osmosis> wget download.geofabrik.de/openstreetmap/europe/germany/bremen-latest.osm.pbf     --2014-04-21 08:35:34 -- http://download.geofabrik.de/openstreetmap/europe/germany/bremen-latest.osm.pbf     Resolve the host name "download.geofabrik.de (download.geofabrik.de) " ... 144.76.34.132 , 144.76.4.22 , 5.9.158.99     Connecting to download.geofabrik.de ( download.geofabrik.de ) | 144.76.34.132 | : 80 .. connected .     HTTP request sent , awaiting response ... 301 Moved Permanently     Place: http://download.geofabrik.de/europe/germany/bremen-latest.osm.pbf [ follow ]     - 2014-04-21 08:35:34 - http://download.geofabrik.de/europe/germany/bremen-latest.osm.pbf     Reuse the existing connection to download.geofabrik.de : 80     HTTP request sent , awaiting response ... 200 OK     Length: 10937291 (10M) [ application / octet-stream ]     bremen-latest.osm.pbf : No authorization          Unable to find »» bremen-latest.osm.pbf «« Write ( No permission ) .     martin @ linux- 70CE : ~ / osmosis >


title: how to publish the layer from Mongodb store in geoserver?

text: I am using geoserver 2.5 MongoDb 2.4 Windows 7 64bit I am imported json data file into MongoDb using the below query.               mongoimport --db GeoMongodb --collection states  --file E:/states.json --jsonArray      This query successfully created states table into Mongodb database. I am created MongoDb store in geoserver. The store also created but inserted mongodb spatial table not showing in MongoDb store as layer in geoserver. (Getting MongoDB working with GeoServer 2) I refereed this link for creating MongoDb store. so I checked geoserver log, it is showing like this error, > 2014-04-17 14:22:32,723 ERROR [data.mongodb] - getLayers error; command > failed [mapreduce]: { "serverUsed" : "localhost/127.0.0.1:27017" , "errmsg" > : "exception: ReferenceError: mapfields_recursive is not defined near > 'ction() { mapfields_recursive (\"\", this);' " , "code" : 16722 , "ok" : > 0.0} Can you please give me the steps for publishing layer from monodb store like postgres database?


title: Developing maps using Tile Mill and Processing(.org)?

text: I had a small question. I actually would like to build an application which is very similar to this but as a map and not on “Multi touch Table Top”. The functionality I need is   1. Plot different cities of California with different radii. The radius will represent the number of times a person has visited a city.    2. When a person clicks on a city (e.g LA) it should show a polyline to other cities which are nearby, as shown in the link above. I was wondering if anyone could help with this and give me some pointers on how to get started which would be real great.


title: Making donut without updating id in MapInfo

text: I wont to make a donut out of an polygon in MapInfo. I store my data in Sql Server 2008 R2 and access it as a linked table. In SQL Server the Id-column is an Identity column that is used to as a primary key and is related as a foreign key in other tables. My problem is when I try to make the donut the Id is reset to zero and when I save the changes it gets an new Id in the database, since I use the Id to connect to other tables you can se the problem. Is there a way to avoid resetting the Id? Regards Ulrik


title: Tile mode in Map server

text:
I am trying to overlay the layers that are rendered using map server over google maps.I am pretty much new to this whole thing. So I tried to go through this example here here http://mapserver.org/output/tile_mode.html. Below is the code which I am using. Could someone let me know where I could be wrong or if there is any other way to configure this.                <!DOCTYPE html        PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">                  <meta http-equiv="content-type" content="text/html; charset=utf-8"/>      <title>Google/MapServer Tile Example</title>

                Ok the main purpose here is that I already have a basic map server application. Now I want the google map street layers as a the basemap on top of which my map server layers would get rendered.


title: how to avoid the bbox limitations on a Mapquest XAPI request

text: I am doing the following: I send a request to the API-Server - over http as a response I get the following result - in XML example: the following link gives back all the Nodes of the Type amenity=restaurant in XML-Format.Note: the bounding box (bbox) limits the area: `http://xapi.openstreetmap.org/api/0.6/node[amenity=restaurant][bbox=9.4908142,48.7810801,9.5660019,48.8387351]` `http://xapi.openstreetmap.org/api/0.6/node[amenity=restaurant][bbox=9.4908142,48.7810801,9.5660019,48.8387351]` note - I do it with wget since the XAPI-service is down for maintenance see here the results:_               <?xml version='1.0' standalone='no'?>     <osm version='0.6' generator='xapi: OSM Extended API 2.0' xmlns:xapi='http://www.informationfreeway.org/xapi/0.6' xapi:uri='/api/0.6/node[amenity=restaurant|fast_food|pub|cafe][bbox=9.4908142,48.7810801,9.5660019,48.8387351]' xapi:planetDate='20100824' xapi:copyright='2010 OpenStreetMap contributors' xapi:license='Creative commons CC-BY-SA 2.0' xapi:bugs='For assistance or to report bugs contact 80n80n@gmail.com' xapi:instance='zappyOsm'>     <node id='721241970' lat='48.830856' lon='9.5116892' user='mabe75' timestamp='2010-05-04T19:01:28Z' uid='260302' version='1' changeset='4607010'>     <tag k='amenity' v='restaurant'/>     <tag k='name' v='Lamm'/>     </node>     <node id='392682646' lat='48.8315734' lon='9.5468864' user='MattGPS' timestamp='2010-05-11T19:00:20Z' uid='12973' version='3' changeset='4671372'>     <tag k='amenity' v='restaurant'/>     <tag k='name' v='Gasthaus an der Wieslauf'/>     </node>     <node id='319597380' lat='48.8277913' lon='9.5477029' timestamp='2008-12-17T21:13:15Z' version='1' changeset='444629'>     <tag k='amenity' v='restaurant'/>     <tag k='name' v='Gasthaus zur Linde'/>     </node>     [...]      well this example works pretty well - if I do it with wget. question: how can I avoid the limitations of the bbox?


title: GeoServer ImageMosaic PostGIS index update

text: I use GeoServer where I created an ImageMosaic storage following this manual. When I create new datastore, all *.tif files are indexed into DB (PostgreSQL with PostGIS). How can I create new index in DB, when I put new geotiff into my data folder, or reindex all geotiff files in DB? My config files: datastore.properties:               SPI=org.geotools.data.postgis.PostgisNGDataStoreFactory     host=localhost     port=5432     database=GeoServerRaster     schema=public     user=geoserver     passwd=*******     Loose\ bbox=true     Estimated\ extends=false     validate\ connections=true     Connection\ timeout=10     preparedStatements=true      indexer.properties:               Caching=false     TimeAttribute=ingestion     ElevationAttribute=elevation     Schema=*the_geom:Polygon,location:String,ingestion:java.util.Date,elevation:Integer     PropertyCollectors=TimestampFileNameExtractorSPI[timeregex](ingestion),DoubleFileNameExtractorSPI[elevationregex](elevation)      timeregex.properties:               regex=[0-9]{8}T[0-9]{6}Z(\?!.\*[0-9]{8}T[0-9]{6}Z.\*)      elevationregex.properties:               regex=(?<=_)(\\d{1,5})(?=_)      files in directory:               tc_10000_20140807T033115Z.tif     tc_10000_20140807T040046Z.tif     tc_10000_20140807T043115Z.tif     ...


title: Trouble converting .osm to .pbf with Osmosis

text: I would like to convert a shp file to map file. I know should use these steps:               shp -> osm -> pbf -> map      For step 1 I use a python script : ogr2osm.py For step 2 I use osmosis, but I get an ERROR:               SEVERE: Thread for task 1-rx failed      org.openstreetmap.osmosis.core.OsmosisRuntimeException:      Node -13963 does not have a version attribute as OSM 0.6      are required to have. Is this a 0.5 file?      help me to solve it.


title: How to delete polygons less than a certain area?

text: I'm trying to delete all polygons with an area smaller than a certain give value. Is this possible in qgis? The goal here is to delete all the islands off a map.


title: Decimal Degree data erases itself between edit sessions in QGIS

text: I have a shapefile with point data. I calculate the $x and $y of the points successfully ![After lat/lon calculation in decimal degrees](http://i.stack.imgur.com/9ej8Q.png) I save the changes and close the edit session. Once I reopen the attribute table, the data after the decimal point is gone. ![Decimal data is gone](http://i.stack.imgur.com/Anocc.png) The field type is Decimal. Why does this happen?


title: ArcGIS for Server or its alternative?

text: I am trying to develop a GIS web application. I am using ArcGIS for desktop as the database. I need to use existing ArcGIS Restful services but also need to publish some new services. I think that ArcGIS for server would be the best choice for me. But I cannot afford it. And I want to know:   1. If there is a free lightweight version of ArcGIS for server?    2. Does a open source alternative such as GeoServer have APIs to use ArcGIS Restful services?


title: plugins available via WMS?

text: I have QGIS server up and running and all is well, and I want to create a plugin in PyQGIS. But I need the plugin to be available to the users of the web maps in which my server serves. So is it technically possible to have the plugin that I create available on the user end, and not just on my desktop QGIS installation? This probably seems like a stupid question, but I am trying to figure out how to tackle a project and I'm wondering if I'm on the right track. Thanks for your help!


title: Can the new Mapbox Vector Tiles be used as a QGIS basemap?

text: With the implementation of the mapbox vector tiles begs the question of how these could be used as a basemap in a QGIS _printed_ map (assuming anyone cares about printed maps anymore!). To use OSM data in a high-quality printed map currently involves downloading the data, styling it, and using it as the basemap - rather than using the openlayers plugin basemaps, which are rasters and do not print well at large print sizes. I'm intrigued as to whether a mapbox OSM vector tile layer could ever be used to alleviate the download and styling of OSM data (a pain in the rear...). When I hear the word 'vector' I think of print quality... Perhaps a mapbox QGIS plugin that allows one to sign in and use their own mapbox layers as basemaps? Any thoughts or insights appreciated!


title: How to open the Electronic nautical chart S-57 data?

text: Anyone know how to open the Electronic nautical chart S-57 data by using GIS software e.g. Arcview, QGIS? and converted it to general GIS / CAD formats. Thanks.


title: PostGis search query on hstore tags

text: I am writing a search client, to query postgis db. The search query will be,               SELECT tags->'name' AS name,ST_Transform(way,4326) AS pt_lonlattext FROM planet_osm_point WHERE lower(tags->'name') LIKE '%school%'      Now, I need the results in such a way that, fully matched results should be given priority than partially matched ones. Is there a way to re-construct the above query to get the desired results?


title: How do I essentially crop an ArcGISTileMapServiceLayer as an object while maintaining the integrity of the basemap

text: I am using the up-to-date flex api and esri api for flex. I know how to use flex to obtain a snapshot of a map, but ultimately what I want to do is retrieve a scaled up image of a part of the basemap. Are there any tools in the flex api that I could use to modify the extent and scale of a map object and store the result maybe as a clone? I've tried changing the extent, but it ultimately changes the basemap which is not what I want to do. I simply want to select a part of the basemap using extent coordinates and then retrieve only what is within those coordinates. I want to be able to get this image and I understand that the tiles will need to wait to be cached. So I can probably write a conditional check for that.


title: "Interpolation Toolset" is inactive in ArcGIS for Desktop 10.1

text: I have ArcGIS for Desktop 10.1 installed on my laptop and "Interpolation toolset" and "Raster Interpolation toolset" is Inactive. How can I get them work?


title: How to implement field validation rules in ArcGis?

text: Not digging in deep, I've found that ArcGis offers validation of 2 basic constraints: field data type and if the value is required or not. Is there any way or AddIn to attach more complex validation rules? I mean Min-Max values for numbers and dates, RegEx for text input, expression based validation for dependent fields.