标签: esri

更改DBF字段大小

我现在使用ESRI shapefile格式,我在更改/编辑数据库字段大小时遇到​​了一些问题.我创建了一个200长度/大小的字段,现在我希望它只有80长度/大小(空间和其他改进).

但是我不能再编辑字段大小了:(有人可以指出如何更改字段大小?

顺便说一下,我尝试过可以编辑字段大小的实用工具,例如DBF Explorer,但是当我在字符/文本字段上更改字段大小时,浮点数/数字字段上的数据会被删除:(
DBF Explorer

PS:ESRI数据库使用.dbf扩展,我认为它是DBASE III plus或DBASE IV格式

size dbf field dbase esri

3
推荐指数
1
解决办法
5356
查看次数

可用的GIS工具包?

我们正在考虑使用ESRI的ArcGIS Engine编写具有某些GIS功能的应用程序.我们主要关注的GIS工具包功能包括:

  • 三维可视化:将高程数据与栅格或矢量数据混合.
  • 在自定义UI /应用程序中嵌入GIS功能(首选QT4)
  • 没有互联网连接的功能(本地数据缓存或地理数据库)
  • 创建新要素(点,线,多边形)并将其存储在地理数据库中.
  • 将图像叠加在地图数据上并经常更新.
  • 与C++的良好互操作性
  • 跨平台:Windows,Mac和Linux

该项目的初始目标相对有限,但未来可能会扩大 - 例如,进行一些包含地理空间数据的图像处理.

除了ESRI的ArcGIS Engine之外,我们还在考虑使用:

  • 美国宇航局世界风
  • GRASS GIS

Intergraph似乎拥有大量的GIS软件产品,但目前尚不清楚它们是否销售了与ArcGIS Engine工具包相当的产品.

还有其他值得考虑的选择吗?关于已经提到的选项的见解或意见?

gis esri esri-arc-engine opengis

3
推荐指数
1
解决办法
900
查看次数

将GIS点与ESRI形状文件中的多边形匹配

我有一个ESRI形状文件,其中包含大约150个连续地理区域(多边形)的库,它们共同构成一个地理区域.我还有一个包含60,000个事件的csv文件,每个事件都有一组唯一的x,y点坐标.csv文件中的每个事件都发生在shape文件中150个多边形中的一个(且只有一个)内,但我不知道与每个记录关联哪个多边形.因此,我需要编写一个算法,找出多边形的身份,其中每个事件发生在60,000个事件中.我需要编写的算法输出将使我能够随后计算统计数据,例如特定多边形(地理区域)内发生的特定类型事件的可能性.

(当然,形状文件不仅仅是一个文件.它是一个目录,包含8个文件扩展名的文件,包括.dbf,.prj,.qix,.sbn,.sbx,.shp,.xml和.shx .)

我没有ArcGIS许可证.我在http://resources.arcgis.com/content/geodatabases/10.0/file-gdb-api找到了文件地理数据库API,但我不确定它是否是正确的工具集,而且我也无法找到示例代码.

任何人都可以向我展示一些代码,用于查找哪些多边形(来自形状文件)中的每一个(来自外部数据源,如csv文件)都属于哪个?

此外,我需要指定我需要能够为每个事件的csv记录添加相关多边形的标识的特定代码.因此,仅仅绘制地图上的点以显示哪些多边形包含事件是不够的.我根本不需要可视化这些数据.相反,我需要的是能够将多边形id标记到csv文件中的每个事件记录,以便我可以进行后续的非直观的数值分析.

还将赞赏有关此主题的文章,教程和其他资源的链接.我想这是人们每天都在解决的一个问题,所以如果一个人知道如何找到它,就必须有一个既定的代码库.我每天都用Java编写代码,因此首选Java解决方案.但是,如果你有一个用不同语言编写的好代码示例,我可以从另一种语言中移植一些东西.


*编辑:*
我根据Spacedman的建议尝试了以下R代码,我收到以下错误消息:

> myCSV <- read.csv(file="myCSVFile.csv",head=TRUE,sep=",")  
> pts = SpatialPoints(myCSV)  
> ZipCodes = readShapeSpatial("path/myshapefile.shp")  
> overlay(myCSV,ZipCodes)  
Error in function (classes, fdef, mtable)  : unable to find an inherited method for function "overlay", for signature "data.frame", "SpatialPolygonsDataFrame"  
> 
Run Code Online (Sandbox Code Playgroud)

请参阅下面的其他评论.


第二次编辑:
我最终使用的R代码是:

myCSV <- read.csv(file="myData.csv",head=TRUE,sep=",")  
pts = SpatialPoints(myCSV)  
ZipCodes = readShapeSpatial("myPath/ZipCodes.shp")  
write.csv(ZipCodes$ZIPCODE[overlay(pts,ZipCodes)], "ZipMatches.csv", quote=FALSE, row.names=FALSE)
Run Code Online (Sandbox Code Playgroud)

注意:我必须使用:

summary(ZipCodes)  
Run Code Online (Sandbox Code Playgroud)

找到包含邮政编码编码的字段的名称.在我运行摘要(ZipCodes)之前,脚本只是输出每个邮政编码的索引而不是邮政编码本身.

gis geocoding esri geolocation geospatial

3
推荐指数
2
解决办法
5856
查看次数

上传到 Shiny 服务器后在 R 中解压文件

我正在尝试在我们的本地服务器上使用 Shiny 来构建一个应用程序,允许用户上传包含 ESRI shapefile 和关联文件的 .zip 文件。Shiny 服务器的 fileInput 可以获取数据,并且当它这样做时,它会将其存储在临时目录和文件名中。该文件名似乎总是一个相当通用的“0”。如果我手动尝试解压缩文件“0”,它会起作用。但是,如果我尝试使用 R 函数 unz (我收集的应该可以工作)以编程方式执行此操作,则会失败,错误消息是它“无法打开 zip 文件“0”。我不知道为什么。任何人都可以帮忙吗?

这是代码:

shinyServer(function(input, output) {

mySHPdata <- reactive({
inFile <- input$file1

if (is.null(inFile))
  return(NULL)
print((inFile$datapath))

data<-read.table(unz(basename(inFile$datapath), "testme.shp"))
Run Code Online (Sandbox Code Playgroud)

必须将相关文件一一提取,因此这里我仅举例说明尝试打开其中一个文件。有人知道为什么这不起作用吗?

zip r esri shiny

3
推荐指数
1
解决办法
1884
查看次数

“找不到激活命令”

我尝试了以下过程来为 arcgis 设置 conda 环境。环境设置正确,系统提示我输入“activate esri101”来激活环境...

$ activate esri101
sh.exe": activate: command not found
Run Code Online (Sandbox Code Playgroud)

在从新手到专家的评分中,我的得分为十分之三。我尝试按照此处指定的方式设置路径,但无济于事。我不知道从这里到底该去哪里。

编辑:我今天再次重试,似乎有效

python esri arcgis virtualenv

3
推荐指数
1
解决办法
2万
查看次数

如何触发Graphic的点击事件?

我使用的是 Esri Javascript API 4.5

当地图加载时,我从外部源获取点坐标,然后使用Graphic类将其绘制在地图上并PopupTemplate为该图形分配一个。

案子

图形已成功绘制在地图上。但是为了查看弹出模板,我需要单击图形。

问题

有没有办法在将图形添加到地图时触发图形的单击事件,以便自动显示弹出模板?

编码

require([    
"esri/PopupTemplate",     
"esri/Graphic",
.
.
.
.
"dojo/domReady!"
],
function (
    PopupTemplate, Graphic, ....) {

var point = {
    type: "point",
    x: <some x>,
    y: <some y>
 };    

var symbol = {
   type: "picture-marker",
   url: "/euf/assets/nl/images/red-pin.png",
   width: "30px",
   height: "30px"
};

var template = new PopupTemplate({
    title: "New Title",
    content: "New Content"
});

var graphic = new Graphic({
    geometry: point,
    symbol: symbol,
    popupTemplate: template
}); …
Run Code Online (Sandbox Code Playgroud)

javascript esri arcgis arcgis-js-api

3
推荐指数
1
解决办法
2098
查看次数

开发ArcMap扩展.Net书籍?

我们的部门有两位新的GIS程序员/分析师(编程和ArcObjects的新手),我觉得我没有足够的资格或没有时间教他们.所以我正在寻找入门级书籍/教程供他们作为参考.

我可以找到用于开发ArcMap扩展的唯一书籍是为VBA编写的.

除了您从Redlands的培训中获得的ESRI课程书籍之外,是否有人知道学习在.Net中对ArcObjects进行编码的良好来源?

谢谢

.net arcobjects esri arcmap

2
推荐指数
1
解决办法
3249
查看次数

在R中组合边界形状文件

我在加利福尼亚州有五个相邻县的shapefile,我正在尝试将它们组合成一个大型shapefile并保持县的原始边界.那么我想绘制点,如使地图只需要在县界的一个简单的地图.有没有办法在R中执行此操作或我是否必须使用类似ArcGIS的东西?

有关于在shapefile中进行合并的大量文档,例如此处两个shapefile具有相同的坐标.但是没有关于仅部分共享坐标的shapefile的文档.

gis r esri shapefile

2
推荐指数
1
解决办法
1695
查看次数

如何使用ArcGIS JavaScript API直接绘制点和文本

我是ArcGIS的新手.

我想直接在地图上画一些点和一些文字.

类似下面的东西.但它只是显示地图而没有画任何东西.

有人可以帮我解决这个问题吗?

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Draw point and text</title>
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.1/js/dojo/dijit/themes/tundra/tundra.css">
<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis?v=3.1"></script>
<script type="text/javascript">
dojo.require("esri.map");
dojo.require("esri.layers.agsdynamic");
var map;
var layer;
var mapUrl;
var defaultSymbol;
function Init() 
{
    map = new esri.Map("mapDiv");
    mapUrl = "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Population_World/MapServer";
    //mapUrl = "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer";
    layer = new esri.layers.ArcGISDynamicMapServiceLayer(mapUrl);
    map.addLayer(layer);        
    defaultSymbol = new esri.symbol.SimpleMarkerSymbol(); // point
    defaultSymbol.setColor(new dojo.Color([255, 0, 0]));

    addPoint(10, 10);
    addText(10, 20, "Text");
}
function addPoint(x, y)
{
    var pt = new esri.geometry.Point(x, y, map.spatialReference); …
Run Code Online (Sandbox Code Playgroud)

javascript esri arcgis arcgis-js-api

2
推荐指数
1
解决办法
9266
查看次数

ArcGIS Javascript - 如何刷新静态地图?

我有一个页面在第一次加载页面时使用ArcGIS Javascript,页面上的地图加载就好了.我有一个下拉框,控制在地图上显示的内容和附加到该下拉框的ajax事件处理程序,当在该下拉框功能中选择了其他选项时

function ajaxOnComplete() {  } 
Run Code Online (Sandbox Code Playgroud)

被叫.我在该函数中如何要求ArcGIS Javascript重新加载其静态地图?

javascript esri arcgis arcgis-js-api

2
推荐指数
1
解决办法
4105
查看次数