Vincent Gulinao wrote: > I'm a total newbie on Openlayers, and map dev in general, so I'm a little > lost how to start. > > I need to develop custom layer defining map political boundaries just like > this: http://www.google.com/intl/en_us/2008election/. > > I'd appreciate pointers, code sample and docs links, learning path > suggestions, etc. that you may share. >
You need a number of things to accomplish this. You'll need spatial data for your political boundaries. This will include whatever attribute data you want to display to the user (election results per state or whatever). If you want to render the data in the browser and have the user interact with features (states), you'll need to set up something to serve up the vector data. If your data never changes, you could store your data on the filesystem in some format like GeoJSON and have Apache serve it up (e.g. http://example.com/data/states.json). If you go this route, you could set up a map in OpenLayers using a vector layer (OpenLayers.Layer.Vector) with a fixed strategy (OpenLayers.Srategy.Fixed) and the HTTP protocol (OpenLayers.Protocol.HTTP) using the GeoJSON format (OpenLayers.Format.GeoJSON). Somewhat relevant example (using GML format instead of GeoJSON): http://openlayers.org/dev/examples/behavior-fixed-http-gml.html Alternatively, if you want to allow users to query your data based on location or attribute (e.g. get all states in this box, get all states that voted for G.W.), you will want to set up a service that can dynamically serve up vector data based on user queries. A Web Feature Service (WFS) is designed to do just this. GeoServer and MapServer are examples of a WFS. If you go this route, you could set up a map in OpenLayers using a vector layer with a fixed or bounding box strategy (OpenLayers.Strategy.BBOX) and the WFS protocol (OpenLayers.Protocol.WFS). somewhat relevant example: http://openlayers.org/dev/examples/wfs-states.html Both of the above approaches request vector data from your server and render the results in the browser. This has the advantage of letting you dynamically style the data on the client and lets your users interact with the data attributes (with less latency). See the style examples (http://openlayers.org/dev/examples/?q=style) to learn about applying custom styles client-side. See the feature selection & popup example to learn how to display feature attributes in a popup (assuming you have feature data client side): http://openlayers.org/dev/examples/select-feature-openpopup.html As an alternative to rendering the data client side (as outlined above), you can set up a service to render your data on the server. The Web Map Service (WMS) is designed to provide feature rendering on the server. GeoServer and MapServer are WMS implementations. If you go this route (render data on the server), you configure your OpenLayers map with a WMS layer (OpenLayers.Layer.WMS). Many of the OpenLayers examples use a WMS layer (e.g. http://openlayers.org/dev/examples/wms.html). If your server is responsible for rendering feature data (political boundaries) instead of the browser, to allow your users to view feature attributes (who voted for G.W.) you need to configure your OpenLayers map to issue request for feature information. The WMS protocol defines a GetFeatureInfo method for this purpose. Here's an example that issues GetFeatureInfo requests and displays the result in a popup: http://openlayers.org/dev/examples/getfeatureinfo-popup.html The drawback of requesting all your vector data client side is that you can swamp the browser while trying to parse or render the features. You need to use appropriate strategies to limit the quantity of data that is parsed and rendered. The drawback of leaving all your vector data on the server is that there is more latency in displaying feature attributes to the user (user waits while requests are issued to the server). None of this requires that you develop a custom OpenLayers layer type. It does require that you set up the appropriate services on the back-end. Hope this helps get you started. Tim > TIA. > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Dev mailing list > Dev@openlayers.org > http://openlayers.org/mailman/listinfo/dev -- Tim Schaub OpenGeo - http://opengeo.org Expert service straight from the developers. _______________________________________________ Dev mailing list Dev@openlayers.org http://openlayers.org/mailman/listinfo/dev