我想在c#中执行以下cURL请求:
curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' \
-d '<workspace><name>acme</name></workspace>' \
http://localhost:8080/geoserver/rest/workspaces
Run Code Online (Sandbox Code Playgroud)
我尝试过使用WebRequest:
string url = "http://localhost:8080/geoserver/rest/workspaces";
WebRequest request = WebRequest.Create(url);
request.ContentType = "Content-type: text/xml";
request.Method = "POST";
request.Credentials = new NetworkCredential("admin", "geoserver");
byte[] buffer = Encoding.GetEncoding("UTF-8").GetBytes("<workspace><name>my_workspace</name></workspace>");
Stream reqstr = request.GetRequestStream();
reqstr.Write(buffer, 0, buffer.Length);
reqstr.Close();
WebResponse response = request.GetResponse();
...
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误:(400)请求不好.
如果我更改请求凭据并在标头中添加身份验证:
string url = "http://localhost:8080/geoserver/rest/workspaces";
WebRequest request = WebRequest.Create(url);
request.ContentType = "Content-type: text/xml";
request.Method = "POST";
string authInfo = "admin:geoserver";
request.Headers["Authorization"] = "Basic " + authInfo;
byte[] …Run Code Online (Sandbox Code Playgroud) 我无法找到一种方法,可以在不使用谷歌地理编码API的情况下将地址转换为长/纬度坐标.我正在使用Open Layers和Open Street Map,并且因为2.500次/天的限制而不得不避免google api.
我的Google Maps API密钥存在问题.我得到一个警告说" This web site needs a different Google Maps API key."当我预先确定警报时,地图正在加载并正常工作.
已发布相同的问题: Google Maps API密钥无效
我曾尝试为" http://www.domain.com "和" http://domain.com " 请求API密钥,但我仍然收到警报.当我按照他们的FQA中的说明并使用alert(window.location.host)时,我得到www.domain.com但是api密钥生成器只接受域名,如果前缀是http://
有人有解决方案吗?
我在c#中读取一些gml文件时遇到问题.我的文件没有架构或命名空间,看起来像这个问题的文件:
只有像这样的模式:
<gml:Polygon srsName='http://www.opengis.net/gml/srs/epsg.xml#4283'>
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coord>
<gml:X>152.035953</gml:X>
<gml:Y>-28.2103190007845</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>152.035957</gml:X>
<gml:Y>-28.2102020007845</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>152.034636</gml:X>
<gml:Y>-28.2100120007845</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>152.034617</gml:X>
<gml:Y>-28.2101390007845</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>152.035953</gml:X>
<gml:Y>-28.2103190007845</gml:Y>
</gml:coord>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
Run Code Online (Sandbox Code Playgroud)
当我尝试使用XDocument.Load方法读取文档时,我得到一个异常说:'gml' namespace is not defined.
我有很多gml文件,所以我不想将架构和命名空间添加到我的所有文件中.有人知道如何阅读我的文件吗?
我有一个带有城市表的postgresql数据库表,该表具有城市坐标的地理字段.
我创建了一个循环遍历这些记录的php页面,转换latit/longit中的geo字段,并在ajax调用期间在OpenLayers地图中绘制一个标记到城市.
我不知道这是否是正确的方法:有没有办法直接将sql查询绑定到地图而不必循环?数据库和OpenLayers地图之间是否存在更直接的关系?
我想与表联合并将它们与第三个元数据表连接起来,我想知道哪种方法最好/最快?
该数据库是PostgreSQL.
以下是我的两个建议,但欢迎其他方法.
在两个表上的union之前进行连接:
SELECT a.id, a.feature_type, b.datetime, b.file_path
FROM table1 a, metadata b WHERE a.metadata_id = b.id
UNION ALL
SELECT a.id, a.feature_type, b.datetime, b.file_path
FROM table2 a, metadata b WHERE a.metadata_id = b.id
Run Code Online (Sandbox Code Playgroud)
或者首先进行联合,然后进行联接:
SELECT a.id, a.feature_type, b.datetime, b.file_path
FROM
(
SELECT id, feature_type, metadata_id FROM table1
UNION ALL
SELECT id, feature_type, metadata_id FROM table2
)a, metadata b
WHERE a.metadata_id = b.id
Run Code Online (Sandbox Code Playgroud) 我有两个这样的表:
CREATE TABLE table1_lang
(
id serial NOT NULL,
lang1 character varying,
lang2 character varying,
...
)
CREATE TABLE table2_lang
(
id serial NOT NULL,
table1_id NOT NULL,
lang1 character varying,
lang2 character varying,
...
)
Run Code Online (Sandbox Code Playgroud)
每个lang列均包含不同语言的名称。我想创建一个从table1_lang返回所选lang的函数(如果存在)。如果该名称在table1_lang中不存在,则该函数应从table2_lang返回该名称。
到目前为止,我已经使用plpgsql中的此函数解决了我的问题:
CREATE OR REPLACE FUNCTION get_name(integer, text)
RETURNS character varying AS
$BODY$
DECLARE
in_id ALIAS FOR $1;
lang ALIAS FOR $2;
table1_name varchar;
table2_name varchar;
BEGIN
IF lang IS NOT NULL AND lang = 'lang1' THEN
SELECT a.lang1 INTO table1_name
FROM table1_lang a …Run Code Online (Sandbox Code Playgroud)