Я намагаюся додати один із включених наборів даних із GeoServer на карту OpenLayers. Я стежив за навчальними посібниками OpenGeo, бачив подібну тему тут, але я не можу зламати її. Чи може хтось поглянути на мій код та налаштування GeoServer і сказати мені, де я помиляюся?
Ось мій код:
//WMS map
world = new OpenLayers.Layer.WMS("Global Imagery", "http://maps.opengeo.org/geowebcache/service/wms", {
layers : "openstreetmap",
format : "image/png"
});
map.addLayer(world);
//WFS
parks = new OpenLayers.Layer.Vector("WFS", {
strategies : [new OpenLayers.Strategy.BBOX()],
protocol : new OpenLayers.Protocol.WFS({
url : "http://localhost:8081/geoserver/wfs",
featureType : "medford:parks",
featureNS : "http://medford.opengeo.org/medford"
})
});
map.addLayer(parks);
map.zoomToMaxExtent();
Дані про GeoServer: ім'я робочої області = medford, ім'я простору імен = http://medford.opengeo.org Для типу функції я спробував "парки" та "медфорд: парки"
Шар увімкнено, рекламується та має обмеження повернення 30 функцій.
Я намагаюся скласти просту карту.
Оновлене рішення Зараз працюю.
wfs = new OpenLayers.Layer.Vector("Fields_WFS", {
strategies : [new OpenLayers.Strategy.Fixed()],
protocol : new OpenLayers.Protocol.WFS({
version : "1.1.0",
url : GEOSERVER_HOST + ":" + GEOSERVER_PORT + "/geoserver/wfs",
featurePrefix : "rpid",
featureType : "FIELDS_SUBSET_BNG_OSGB36_1",
featureNS : "<namespace>",
//geometryName : "GEOM", type "Geometry"
srsName : "EPSG:27700"
}),
renderers : renderer
})
Не потрібно вказувати ім'я геометрії у визначенні шару. Оскільки Native SRS був недійсним у нашому наборі даних, якщо ми зберігаємо geometryName, ніж це за замовчуванням, але без цього він використовує проекцію карти (в нашому випадку 27700).