Возникла необходимость редактировать данные через браузер (wfs-t), решил попробовать tinyows. Установил, настроил, когда обращаюсь к серверу по адресу типа http://myserver/tinyows?service=WFSбла-бла-бла - все ок, вижу данные своего слоя.
Когда пытаюсь подключить в leaflet/OL - на сервер улетает пустой запрос вида "http://myserver/tinyows?&", соответственно, tinyows ругается на отсутствующие параметры.
tinyows.xml:
Код: Выделить всё
<tinyows online_resource="http://localhost/tinyows"
schema_dir="/tinyows/schema/">
<pg host="127.0.0.1" user="postgres" password="postgres" dbname="gis" port="5432"/>
<metadata name="TinyOWS Test Server"
title="TinyOWS Test Server" />
<layer retrievable="1"
writable="1"
ns_prefix="test"
ns_uri="http://myserver/tinyows/"
name="test_data"
title="test points" />
</tinyows>
Код: Выделить всё
TinyOWS version: 1.1.0
FCGI support: No
Config File Path: /etc/tinyows.xml (TinyOWS XML)
PostGIS Version: 1.5.3
PostGIS dsn: host=127.0.0.1 user=postgres password=postgres dbname=gis port=5432
Output Encoding: UTF-8
Database Encoding: UTF8
Schema dir: /tinyows/schema/
Display bbox: Yes
Estimated extent: No
Check schema: Yes
Check valid geoms: Yes
Available layers:
- public.test_data (4326) -> test:test_data [RW]
Код: Выделить всё
function init(){
var lat = lat,
lon = lon,
zoom = 13,
map = new OpenLayers.Map('map'),
osmMap = new OpenLayers.Layer.OSM('OpenStreetMap'),
lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")),
layerSwitcher = new OpenLayers.Control.LayerSwitcher(),
layerTest = new OpenLayers.Layer.Vector('test_layer', {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.WFS({
version: '1.1.0',
url: 'http://myserver/tinyows',
featurePrefix: 'test',
featureType: 'test_data',
featureNS: 'http://myserver/tinyows',
geometryName: 'geom' // тут хранится геометрия
}),
});
console.log(layerTest);
console.log(layerTest.features);
map.addLayers([osmMap, layerTest]);
map.setCenter (lonLat, zoom);
map.addControl(layerSwitcher);
}