我有一个地图应用程序,可以在给定URL的情况下添加ArcGIS 9.3+基本地图.我想添加的其中一个网址来自客户的网址并受到保护.我的地图应用程序之前使用的是Java 6,并且能够无问题地添加安全URL.我现在升级到Java 7并且正在获得一个
"java.security.cert.CertificateException: Certificates does not conform to algorithm constraints"
Run Code Online (Sandbox Code Playgroud)
例外.起初,我认为情况就是这样,因为在Java 7中,默认情况下,MD2禁用签署SSL证书的算法.您可以在java.security文件中看到:
"jdk.certpath.disabledAlgorithms=MD2"
Run Code Online (Sandbox Code Playgroud)
但是,当我检查该Certification Signature AlgorithmURL时,它说SHA-1.更奇怪的是,如果我"jdk.certpath.disabledAlgorithms=MD2"在java.security文件中注释掉该行,则URL将无问题地工作.是MD2在SSL过程中使用别的地方?我在这里错过了什么吗?
您最成功地在哪里获得ArcGIS开发问题的答案?
ESRI论坛?堆栈溢出?谷歌?邮件列表?博客帖子?ESRI文件?
我通常可以在短时间内获得ASP.NET/Oracle/Java/C#问题的答案,但有关ESRI产品和API的问题则是另一回事.帖子创始人在论坛上,Google返回无效等.
我敢肯定这对小众商业产品并不少见,但令人沮丧.什么对你有用?请分享.
我试图将一些JSON内容解析为C#.对于更简单的情况,我在JSON.NET上取得了巨大的成功,并且非常感谢LINQ提供商提供的干净方法.这是一个例子,我在地图中下载有关图层的信息,并在一个叫做的类上填充一些属性(令人惊讶!)图层:
using (var client = new WebClient())
{
_content = client.DownloadString(_url.AbsoluteUri + OutputFormats.Json);
}
JObject json = JObject.Parse(_content);
IEnumerable<Field> fields = from f in json["fields"].Children()
select new Field(
(string)f["name"],
(string)f["alias"],
(EsriFieldType)Enum.Parse(typeof(EsriFieldType), (string)f["type"])
);
_fields = fields.ToList();
_displayFieldName = (string)json["displayField"];
Run Code Online (Sandbox Code Playgroud)
您可以查看此URL以获取该方法的JSON的详细信息:http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/WaterTemplate/WaterDistributionNetwork/MapServer/1?f = json&pretty = true.但是当我需要将与地图图层关联的单个数据字段转换为DataTable甚至只是字典结构时,问题就出现了.问题是,与RSS提要或其他一致格式不同,字段名称和字段数量从地图图层更改为地图图层.这是我运行查询的一个例子:
[Test]
[Category(Online)]
public void Can_query_a_single_feature_by_id()
{
var layer = _map.LayersWithName(ObjectMother.LayerWithoutOID)[0];
layer.FindFeatureById("13141");
Assert.IsNotNull(layer.QueryResults);
}
Run Code Online (Sandbox Code Playgroud)
在layer.FindFeatureById中运行的代码是这个,包括我卡住的部分:
public void FindFeatureById(string id)
{
var queryThis = ObjectIdField() ?? DisplayField();
var queryUrl = string.Format("/query{0}&outFields=*&where=", OutputFormats.Json);
var …Run Code Online (Sandbox Code Playgroud) 我试图从以下JSON加载操作层数据,没有运气.
到目前为止,我尝试了以下内容
graphicLayer = new esri.layers.GraphicsLayer(); graphicLayer.add(json); map.add(graphicLayer);normalizeUtils.normalizeCentralMeridian有什么我缺少的,作为参考我试图遵循这个例子http://resources.arcgis.com/en/help/arcgis-web-map-json/index.html#/ArcGIS_feature_service_operational_layers/02qt00000017000000/
这是我第一次使用Arcgis,我在地图上有一个先前绘制的线的样本JSON,我试图加载而没有运气.这是我正在尝试的JSFiddle.
https://jsfiddle.net/42wehk86/3/
真的很感激,如果有人能够对此有所了解.
我需要编写一个返回单个静态地图图像(png,jpg等)的地图服务.在过去(即Google Maps起飞之前),这是ArcIMS等服务器软件的默认工作方式.现在,这些包默认提供平铺地图服务,在大多数情况下通常是适当的解决方案.但是,在这种情况下,我的要求是返回一个可以通过URL访问的单个图像.
我知道Google Maps解决方案是他们的静态地图API.如果你正在创建一个简单的地图,这可以正常工作,但我的地图将有多边形和点叠加,并且可能在1024字符URL的范围内添加为标记和编码多边形.
我可以访问ArcGIS Server,并可以创建包含上述数据的地图服务,但我不知道让服务返回单个图像的最佳方法是什么.我在ESRI在线帮助中找到的唯一功能是能够将OGC Web地图服务(WMS)功能添加到地图服务中.你可以将地图作为图像请求,但这对我来说似乎有点像黑客.
有谁知道是否有更好/更正式的方式?
我一直在ESRI的JSAPI中开发一些Web地图.目前我在SQL Server中存储以下图层:
1,000,000点
30,000个多边形
1,000个多边形
这些需要彼此重叠显示.我还需要能够进行一些高级查询和识别功能.
到目前为止我已经构建了一些工具,但我很好奇是否有更好的选择.我看过了CartoDB,但目前它不支持多层.您似乎可以使用CartoDB和Google Maps API,但我觉得这会增加额外的复杂性.我读过一些关于传单,mapbox,opengeo等的内容.
那么它归结为什么是SQL Server/ArcGIS Server/ESRI JSAPI的一个不错的替代品?
谢谢,埃文
你好,
我是 ESRI/ArcGIS API 的首次用户。我已经设置了一个帐户...等等...并拥有一个节点服务器,该服务器获取 ESRI 令牌并向 ESRI/ArcGIS 服务端点 - VRP(车辆路由问题)服务发出请求。
我只是想“启用”“服务目录”......或者本例中的任何语言。
我不想做任何高级的事情,只是接触服务来熟悉输入和输出——非常简单 直接的基本内容。
但是,当我尝试此请求时,响应正文是一个 HTML 字符串 ( 200/ok):<b>Error: Services Directory has been disabled.</b>我已经(很多)搜索了解决方案,包括从以下页面搜索:
http://resources.arcgis.com/en/help/rest/apiref/admin.html
足够讽刺的是(或者可能太多了),我在 ESRI/ArcGIS 上找不到任何内容,或者甚至在 Stackoverflow 上都没有找到任何关于此事的信息,尽管它似乎是使用这些服务的第一个障碍。
如果您愿意的话,请查看上面的链接,希望您能启发我了解它的解释——即 URIhttp://<host>:<port>/<instance>/admin模式。看来我可能需要在某处托管/安装管理/管理服务器(?)。我现在正在使用我的localhost(注册免费/开发人员包)——我需要先部署才能安装/配置某些东西吗?ESRI 在线门户/myesri 中是否有“启用服务‘X’ ”?
我们在我们的一些 ArcGIS Server web 服务上使用基于令牌的安全性,我试图更好地了解它们的工作方式。我们目前必须使用粘性会话,因为我们有负载平衡服务以实现冗余和性能。然而,我阅读的所有文档(例如下面的文章)都表明,使用令牌身份验证实际上应该消除对粘性会话的需求。在阅读完所有内容后,我仍然不确定为什么会这样。
如果用户登录并从我们的负载平衡服务器之一接收令牌,并且该令牌随每个后续请求一起传递,那么为什么不需要确保请求在同一台服务器上结束。另一台服务器如何能够验证令牌?根据我的阅读,我能想到的唯一方法是将令牌签名存储在所有负载平衡服务器都可用的中央存储库中。再说一次,这与仅存储令牌本身没有什么不同,这与存储会话信息相同。
http://code.tutsplus.com/tutorials/token-based-authentication-with-angularjs-nodejs--cms-22543
如果这很简单,请原谅我,但我无法找到解决问题的方法.
我试图在bootstrap模式中打开ESRI地图.在第一次它没有加载地图(在控制台中我看到错误"需要未定义"),但第二次它工作正常.如果我在一个单独的窗口中打开地图,那么每次都可以正常工作.
我的部分视图如下:
@{
<link rel="stylesheet" href="https://js.arcgis.com/3.21/dijit/themes/claro/claro.css">
<link rel="stylesheet" href="https://js.arcgis.com/3.21/esri/css/esri.css">
<script src="https://js.arcgis.com/3.21/"></script>
<script>
var map;
require([
"esri/map",
"dojo/parser",
"dojo/domReady!"
],
function (
Map,
parser
)
{
parser.parse();
map = new Map("map", {
basemap: "streets",
center: [5.79, 50.97], // lon, lat
zoom: 16,
slider: false
});
});
</script>
}
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h4>DrawProjectLocation</h4>
</div>
<div class="modal-body">
<div id="mainWindow" data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="design:'headline', gutters:false" style="width:100%; height:100%;">
<div id="map" class="roundedCorners" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'">
</div>
<div id="footer" class="roundedCorners" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'bottom'">
<div id="editorDiv"></div>
</div>
</div>
</div> …Run Code Online (Sandbox Code Playgroud) 我可以将 ArcGIS Server REST 服务 API 消费到 MapBox GL API 中吗?请任何人告诉我是否可以将 ArcGIS Rest 服务消费到 MapBox GIS 中。谢谢!!
arcgis-server ×10
arcgis ×4
esri ×4
javascript ×3
asp.net-mvc ×1
c# ×1
geospatial ×1
gis ×1
google-maps ×1
java ×1
java-7 ×1
json ×1
json.net ×1
mapbox ×1
mapbox-gl ×1
mapbox-gl-js ×1
maps ×1
security ×1
ssl ×1
web ×1
web-services ×1