arcgis里面字段不能计算常见问题都有哪些

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arcgis里面字段不能计算常见问题都有哪些相关的知识,希望对你有一定的参考价值。

参考技术A 个建筑占地面积字段,只计算占地面积。
再建一个建筑面积的字段,肯定有楼层的属性字段吧?那么这个建筑面积就应该计算为单层面积乘于楼层。
如果一宗地内有多幢房子的(2层混房、3层的砼房和1层的砖房)。那么可以建建筑面积A,建筑面积B,分别乘于楼层的那个字段。
上面搞完了,建一个宗地面积汇总的字段,计算内容为:建筑面积A+建筑面积B
就是一宗地的建筑总面积。
如果要进行出图打印,就分别对这个字段标注。
不知这样说的清不清楚

补充回答:
当然可以计算,利用汇总功能就可以,详细过程我已写下来,在我的百度空间有:
参考技术B 1、应该是id出现了问题,2、然后就是你的表达式写错了追问

比如要去掉tbbh前得数字0,表达式应该写成怎样的呢(新加了一列)

追答

Dim str As String
str=[sText]
dim i as Integer,count as Integer
For i = 0 To Len (str)
If Mid(str,i+1,1)="0" Then
count=count+1
else
Exit For
End If
Next i
str=Right (str,Len (str)-count)

本回答被提问者采纳

现都有哪些服务可用于计算两个地址之间的距离?

【中文标题】现都有哪些服务可用于计算两个地址之间的距离?【英文标题】:What pre-existing services exist for calculating distance between two addresses?现有哪些服务可用于计算两个地址之间的距离? 【发布时间】:2008-09-22 16:19:54 【问题描述】:

我想实现一种方法来显示按与给定地址的接近程度排序的存储地址列表。

列表中的地址将存储在数据库表中。单独的部分有单独的字段(我们有邮政编码、城市名称等字段),所以它不仅仅是一个巨大的varchar。这些是用户输入的,由于系统的性质,可能并不总是完整的(有些可能缺少邮政编码,而有些可能只有城市和州)。

虽然这是针对 Intranet 应用程序,但我在使用外部资源(包括访问 Internet Web 服务等)时没有问题。实际上,我更喜欢自己动手,除非自己做是微不足道的。如果谷歌或雅虎!已经提供免费服务,我很愿意去看看。关键是它必须是免费的,因为我无权为这个项目引入任何额外的成本,因为可以说它已经是一个额外的“福利”了。

我认为这很像许多实体店的“查找位置”功能。将其显示在一个适当排序的简单表格中并显示距离(例如,英里)非常棒。显示地图混搭更酷,但我绝对可以忍受只是恢复距离并处理所有后续显示和排序。

简单距离算法的问题在于数据的性质。由于地址的全部或部分可以是未定义的,我没有任何方便的东西,比如纬度/经度坐标。另外,即使我要求邮政编码,90% 的地址也可能有相同的五个邮政编码。

虽然它不需要非常快,但正如我们所知,由于延迟而需要超过 7 秒才能显示在页面上的任何内容可能对于普通用户来说等待时间太长。如果这样的假设服务支持一次发送一批地址而不是一次查询一个,那就太好了。不过,我不应该认为地址列表总数会超过 50 个,如果有的话。

【问题讨论】:

【参考方案1】:

Google 和Yahoo! 均免费提供地理编码服务。您可以使用Haversine formula (implemented in .NET or SQL) 计算距离。这两种服务都可以让您进行部分搜索(仅限邮政编码,仅限城市),并让您知道其结果的精确度(这样您就可以排除没有有意义信息的位置,尽管 Yahoo! 提供的精确度信息比 Google 高)。

【讨论】:

我一定会调查的。我们已经在同一系统的另一部分中链接到 Yahoo!地图为任意输入的地址提供位置信息。但在那种情况下,我不需要任何接近...... 请告诉您您使用了哪种解决方案...以便其他人也可以从中受益...我也有类似的问题...***.com/questions/7426710/…【参考方案2】:

由于其使用条款,Google Maps API 对您不利。但是,Yahoo 提供 REST 服务,用于将地址转换为经纬度坐标,然后您可以使用它来计算距离。它的here。

【讨论】:

【参考方案3】:

要求他们输入邮政编码,然后创建一个数据库表,将邮政编码映射到纬度/经度对(或在线查找)。我不知道你在哪里工作,但在这里,邮政编码可以特定于几米,所以应该足够精确。然后用这个方法计算两个邮政编码之间的距离:

public static double distance(double lat1, double lon1, double lat2, double lon2, char unit)

  double theta = lon1 - lon2;
  double dist = Math.Sin(deg2rad(lat1)) * Math.Sin(deg2rad(lat2)) +
    Math.Cos(deg2rad(lat1)) * Math.Cos(deg2rad(lat2)) * Math.Cos(deg2rad(theta));
  dist = Math.Acos(dist);
  dist = rad2deg(dist);
  dist = dist * 60 * 1.1515;
  if (unit == 'K')
  
    dist = dist * 1.609344;
  
  else if (unit == 'N')
  
    dist = dist * 0.8684;
  
  return (dist);


private static double deg2rad(double deg)

  return (deg * Math.PI / 180.0);


private static double rad2deg(double rad)

  return (rad / Math.PI * 180.0);

使用您自己的代码而不是地理编码服务的优势在于,您可以对数据进行更多有趣的计算,并将数据旁边的内容存储在您的数据库中。

【讨论】:

【参考方案4】:

你不能只使用谷歌地图 API 来获取距离并在你身边对它们进行排序吗?

http://code.google.com/apis/maps/

【讨论】:

由于这是非公共/内联网,我需要使用非免费的 Google Maps API Premier。【参考方案5】:

我建议调查一下 google maps API。

它需要您有一个外部连接(并且可以将其上的数据分流到 Web 服务),但它提供了您所需要的,即通过询问 2 个点之间的路线并获得距离。

API reference of the directions API

【讨论】:

【参考方案6】:

我们在我公司做过的一件事是作弊并使用邮政编码的纬度/经度(大致是邮政编码区域的中心)。它并不完美,但对于那些在 y 类型的搜索 n 英里内找到我 x 的人来说已经足够接近了。 这在地址清理服务无法识别地址时特别有用。

在某个时候,我发现了一个免费的邮政编码到纬度/经度查找表,可用于此近似值。很抱歉,我没有此链接。

【讨论】:

这将是一个好主意,如果不是因为他们列表中的几乎所有位置都位于少数邮政编码中(即都在同一个都市区)并且所以我认为这不够准确。但可能仍然值得研究......【参考方案7】:

查看此网站:http://geocoder.us/help/utility.shtml

您可以像这样每 15 秒处理 1 条记录: http://geocoder.us/service/distance?zip1=95472&zip2=94305

他们也有没有时间限制的订阅服务

【讨论】:

【参考方案8】:

Daft Logic 已经有人这样做了(编辑:错字)。他们使用带有Great-circle formula 的Google Maps API。我认为实施起来并不难。

更新:实际上,您只需要从您最喜欢的提供商处获取坐标,然后使用您的代码进行计算。当用户提供他们的位置时,您可以预加载商店的坐标 - 您甚至可以使用它进行验证。然后,在发出请求时,您只能查找客户的位置。

【讨论】:

你不是说 DaftLogic 吗? ;) 不过,这真的很酷。我很好奇如何用我们的数据库中的点预加载它。不过,真的,我需要更快且“手边”的东西。我们的用户在响应此功能将帮助处理的请求类型时会在有限的时间内工作。

以上是关于arcgis里面字段不能计算常见问题都有哪些的主要内容,如果未能解决你的问题,请参考以下文章

arcmap里面字段计算器字符串里面功能代表什么

arcgis添加字段显示表或者视图不存在

Java千百问_07JVM架构(017)_jvm常见配置都有哪些

arcgis 字段计算器 如何批量写上乡镇名称

arcgis里面怎么删除字段里面的Z值

常见的应用层协议都有哪些?面试官可能会问系列