+ function loadGML(url) {
+ setStatus("#{I18n.t('browse.start_rjs.loading')}");
+ $("browse_content").innerHTML = "";
+
+ if (!browseDataLayer) {
+ var style = new OpenLayers.Style();
+
+ style.addRules([new OpenLayers.Rule({
+ symbolizer: {
+ Polygon: { fillColor: '#ff0000', strokeColor: '#ff0000' },
+ Line: { fillColor: '#ffff00', strokeColor: '#000000', strokeOpacity: '0.4' },
+ Point: { fillColor: '#00ff00', strokeColor: '#00ff00' }
+ }
+ })]);
+
+ browseDataLayer = new OpenLayers.Layer.GML("Data", url, {
+ format: OpenLayers.Format.OSM,
+ formatOptions: {
+ checkTags: true,
+ interestingTagsExclude: ['source','source_ref','source:ref','history','attribution','created_by','tiger:county','tiger:tlid','tiger:upload_uuid']
+ },
+ maxFeatures: 100,
+ requestSuccess: customDataLoader,
+ displayInLayerSwitcher: false,
+ styleMap: new OpenLayers.StyleMap({
+ 'default': style,
+ 'select': { strokeColor: '#0000ff', strokeWidth: 8 }
+ })
+ });
+ browseDataLayer.events.register("loadend", browseDataLayer, dataLoaded );
+ map.addLayer(browseDataLayer);
+
+ browseSelectControl = new OpenLayers.Control.SelectFeature(browseDataLayer, { onSelect: onFeatureSelect });
+ browseSelectControl.handlers.feature.stopDown = false;
+ browseSelectControl.handlers.feature.stopUp = false;
+ map.addControl(browseSelectControl);
+ browseSelectControl.activate();
+ } else {
+ browseDataLayer.setUrl(url);
+ }
+
+ browseActiveFeature = null;
+ }
+
+ function dataLoaded() {
+ if (browseActive) {
+ clearStatus();
+
+ browseObjectList = document.createElement("div")
+
+ var heading = document.createElement("p");
+ heading.className = "browse_heading";
+ heading.appendChild(document.createTextNode("#{I18n.t('browse.start_rjs.object_list.heading')}"));
+ browseObjectList.appendChild(heading);
+
+ var list = document.createElement("ul");
+
+ for (var i = 0; i < this.features.length; i++) {
+ var feature = this.features[i];
+
+ // Type, for linking
+ var type = featureType(feature);
+ var typeName = featureTypeName(feature);
+ var li = document.createElement("li");
+ li.appendChild(document.createTextNode(typeName + " "));
+
+ // Link, for viewing in the tab
+ var link = document.createElement("a");
+ link.href = "/browse/" + type + "/" + feature.osm_id;
+ var name = featureName(feature);
+ link.appendChild(document.createTextNode(name));
+ link.feature = feature;
+ link.onclick = OpenLayers.Function.bind(viewFeatureLink, link);
+ li.appendChild(link);
+
+ list.appendChild(li);
+ }
+
+ browseObjectList.appendChild(list)
+
+ var link = document.createElement("a");
+ link.href = this.url;
+ link.appendChild(document.createTextNode("#{I18n.t('browse.start_rjs.object_list.api')}"));
+ browseObjectList.appendChild(link);
+
+ $("browse_content").innerHTML = "";
+ $("browse_content").appendChild(browseObjectList);
+ }