High level components for GeoExt based applications.
The gxp components are used by OpenGeo in their applications, such as GeoExplorer and GeoEditor.
High level components for GeoExt based applications.
Home Page: http://boundlessgeo.com/
License: Other
The FeatureEditor is always configured with a FeatureManager. It should get the layer record from the feature manager instead of the viewer.
WMS 1.3 does not have a DescribeLayer request, so we need to go directly to DescribeFeatureType when the DescribeLayer request is not advertised in the capabilities doc.
The FeatureManager can add layers to the map before any other layers are added. This unintentionally sets the base layer to a vector layer. Tools should never add layers to the map before the "ready" event. In addition, it would simplify things to add/remove the feature layer once and control visibility when other tools want to display or hide features.
The nextPageTip
reads "Last page" and the lastPageTip
is undefined.
Hello ,
I was trying to customize the query panel to work with feature grid as like in Geoeditor. I got a basic query panel code from opengeo suite recipes. But i am facing a problem.
Query panel is not working with extjs 3.2 , When i select a layer it is throwing an error - " uncaught exception: Ext.data.DataProxy: DataProxy attempted to execute an API-action but found an undefined url / function ". How to handle this error. This error prevents
loading the layer features into query by attribute combo box. How to fix this problem ?. Thanks
Prior to Ext 3.3.0, the PropertyGrid would show attributes whose values were undefined. This allowed attribute editing for newly created features.
It doesnt look like a OpenLayers.Layer.Vector have source. You should add
!(layer instanceof OpenLayers.Layer.Vector) to line 256 in method getState() in Viewer.js.
This solves the problem but doesnt print the vector graphics.
// include all layer config (and add new sources)
this.mapPanel.layers.each( function( record ){
var layer = record.get("layer");
if (layer.displayInLayerSwitcher && !(layer instanceof OpenLayers.Layer.Vector) ) {
var id = record.get("source");
var source = this.layerSources[id];
if (!source) {
throw new Error("Could not find source for layer '" + record.get("name") + "'");
}
// add layer
state.map.layers.push(source.getConfigForRecord(record));
if (!state.sources[id]) {
state.sources[id] = Ext.apply({}, source.initialConfig);
}
}
}, this);
so that at least of the box we get a map with nice looking pan and zoom panels.
My use case:
I have defined an external WMS as a source, which I do not use in the map layers, it is only meant for people to add layers using the AddLayers dialog.
However I want all the layers to be singleTile, but I can't seem to currently force that. Would it be an idea to have a layerOptions object in the source, which will then be used in the WMSSource when creating the layers?
Any other ideas on how to tackle this?
As discussing the GeoBuilder stuff with ahocevar on IRC, he came up with this very good idea of moving the persistance code out of GeoExplorer into a separate plugin in gxp named e.g. StatePersister whose output could be the publish dialog, whose action could be the publish button.
When switching very fast between selected groups, the selection of features that belong to the group don't work any more.
This is needed for the GeoNode client, which now pops up with the local Geoserver instead of the first source which is the default now. Code from the Geonode client:
- var initialSourceId, source, data = []; - for (var id in this.layerSources) { - source = this.layerSources[id]; - if (initialSourceId === undefined && - source instanceof gxp.plugins.WMSSource && - source.url.replace(this.urlPortRegEx, "$1/").indexOf( - this.localGeoServerBaseUrl.replace( - this.urlPortRegEx, "$1/")) === 0) { - initialSourceId = id; - } - if (source.store) { - data.push([id, this.layerSources[id].title || id]); - } - } - // fall back to 1st source if the local GeoServer WMS is not used - if (initialSourceId === undefined) { - initialSourceId = data[0][0]; - }
The viewer bar should (optionally) feature a full screen icon that will send the user to the map composer (or full-screen viewer, as appropriate): https://img.skitch.com/20101216-gd8qhrm2mf9qn79beeyqfteb6k.jpg
We currently support a limited number of layer properties in our layer config objects. We should discuss a better way to handle this. One option would be to have properties for each argument in the layer constructor. So, the WMS source would take layer config objects with title, url, params, and options properties. To that, we add the properties required by the source (in the case of WMS: name). This would let us support arbitrary layer options (and query string parameters in the case of WMS) without having to code in those property names.
There's a missing comma in the language files. This keeps them from loading.
init: function(target) {
this.target = target;
var fallback = function(msg, details) {
this.fireEvent("failure", msg, details);
}
this.createStore();
},
This config option does not work, except for tools that use GeoExt.Action actions
We're using the url vtype from Ext to validate URL for the add server dialog. This regex is a bit bogus (same in Ext 4). It tries to enforce a 2 or three char top level domain, but actually allows an arbitrary number of characters there (so "http://foo.oops?#bar" is valid but "http://localhost/" is not).
With 5024a1b, the google.earth.createInstance
is called on render. In GeoExplorer at least, this happens before layers have been added to the map, so setExtent
fails.
We need to come up with some tests that cover our use cases here. In the meantime, I'm going to revert this change that adds the "render" listener.
If there is a slow WMS defined in the sources, it can hault loading of the whole map, even if none of the layers of the WMS is used in the layers configuration of the map at all. This does not make sense to me. Would it be possible to only load these sources when they are necessary (e.g. when the AddLayers dialog is shown)?
The input field stays disabled, works fine on Mac with same Chrome version.
It should instead be: http://projects.opengeo.org/common/geosilk/trunk/silk/arrow_inout.png
Partially because it can be confused with "full-screen" and partially because sometimes it means zooming in, not just zooming out.
See also: http://dev.geonode.org/trac/ticket/896
Currently, the user is prompted to save, disregard, or continue editing when they try to change the selected layer during editing. However, the target layer node is still selected even if the user chooses to continue editing.
I have prepared polish translation for GXP, and tested it.
File is available at: http://geostrada.pl/pl.js
add the possibility to add eventListeners to the OpenLayers.Map object in Viewer.js through config
The GoogleSource plugin should provide an API for other components to determine when the maps script has loaded.
All plugin configs must be serializable. Having an OL format in the config makes persistence fail in IE. In other places, we persist more than we need.
When features have been edited, all corresponding WMS layers should be redrawn.
Today I am working for the Dutch Cadastre and trying to change their viewer to possibly use gxp, but git does not work over their firewall. So I am opening up tickets to keep track of things.
Currently we cannot specify resolutions in mapConfig in Viewer.js this could be handy though if you want to use a different projection with a different set of resolutions.
This should require the GoogleSource and use the same loader.
Currently all types are entered in a textfield with no validation. Like in aratcliffe@e40eca9 (thanks aratcliffe), we should listen for attribute selection changes and create an appropriate value field.
While working with any GoogleMaps source, map credits dialog covering partially map view is shown after every map refresh. What is strange source graphic is named iPhone...
Changing parameter version: 3.3 in GoogleSource.js to 3.2 value makes it ok.
It looks like the Google Earth plugin checks port as well in validating an API key (see also this thread).
Our plugin should prompt if the provided key doesn't match based on port.
MapQuest provides both OSM and Aerial imagery. We should provide access to both.
This requirement comes from the Geonode-client:
// disable the "About" tab's fields to indicate that they // are read-only //TODO WMSLayerPanel should be easier to configure for this prop.items.get(0).items.get(0).cascade(function(i) { i instanceof Ext.form.Field && i.setDisabled(true); });
OpenLayers parses WMTS capabilities docs. We should provide a source plugin.
I made file with translation to polish (pl.js) (will enclose with another post).
Everything works ok with one exception:
LayerProperties phrase is not working.
The only method is changing menuText and toolTip directly in LayerProperties.js.
All other phrases works.
WMSsource.js trhows a failureEvent because this.store.reader.raw.service is undefined but the url to the getCapabilities document is valid and the getCapabilities document has a service xml element.
The url im using is: http://openmetoc.met.no/metoc/metocwms
(http://openmetoc.met.no/metoc/metocwms?request=Getcapabilities&service=WMS&version=1.1.1)
While this getCapabilities document it thows no errors and is working as expected:
http://npdwms.npd.no/npdwmsmap_WGS84.asp
I cant find where the xml is parsed (where the raw attribute is created) and Im wondering if it can be an encoding issue.
Suggestion from Rollie:
"Zoom to selected" button in the footer bar (lower right?) and/or context menu for the row.
Refactor the paging code in FeatureManager into a plugin, so that quadtree paging and WFS paging can be two different plugins (thanks ahocevar for the suggestion)
There is no way to get transaction status or error message , if i use featureeditpopup class for editing , creating or deleting a feature. Hope this topic will be considered soon.
translate the gxp locale to Dutch (nl.js)
See http://trac.osgeo.org/openlayers/ticket/3014 and http://getsatisfaction.com/opengeo/topics/incompatible_mapserver_wms_service - llbbox works fine, but the order of coordinates in the native bbox depends on the axis order.
Similar to the ExtJS paging toolbar, page 1 of 44
Instead of having plugins fire events on the viewer, we should provide a method. The only place the events are fired is within this method.
Currently, if you give the WMSSource a URL like http://aes.gsfc.nasa.gov/cgi-bin/wms?SERVICE=WMS&REQUEST=GetCapabilities&VERSION=1.1.1, the service complains because there are two REQUEST parameters included in the request. Ext just tacks on the baseParams that we provide the store. To avoid duplicating and to support overriding, we need to trim the provided URL.
AddLayers plugin should use CapabilitiesGrid widget
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.