span8
span4
FME本身不是地理编码器。亚搏在线安全软件不拥有或维护地理编码所需的地址和位置数据。然而,存在许多地理编码web服务,FME可以通过访问这些web服务来对数据进行地理编码。当我们在本文中提到地理编码时,我们指的是获取已知地址的纬度和经度。
这个例子展示了如何使用FME对Gisgraphy服务进行地理编码。Gisgraphy服务同时使用Geonames和OpenStreetMap数据源。更多有关地理信息可在此找到:http://www.gisgraphy.com/
地址源数据
附加的工作区使用创建者创建单个地址记录,并使用AttributeCreator从发布的参数中获取地址数据。您可以使用文件提示符运行此工作区,然后运行并输入一个地址,并查看地理编码的位置。
用您自己的地址数据(例如Excel文件或数据库表)的阅读器替换创建者。需要三个属性:
如果你的数据结构不是这样的属性,FME包含许多转换器来帮助您映射模式。AttributeRenamer可用于简单地更改属性的名称。或者您可能有单独的地址编号和街道名称属性,您可以使用StringConcatenator将它们组合成一个名为StreetAddress的属性。
为每一个记录,工作区中的StringConcatenator将地址属性与Gisgraphy服务的基本URL(已发布参数)结合起来,为每个地址构建一个URL。这个URL由HTTPFetcher转换器发送到Gisgraphy服务,并返回一个位置。下面是一个URL的例子,它在传递给属性GeoCodingURL中的HTTPFetcher之前:
http://services.gisgraphy.com/geocoding/geocode?ad..。双橡树Cr Waterloo&country=CA
HTTPFetcher将自动用URL编码替换URL中的空格。
HTTPFetcher为属性_url_contents中的每个地址记录返回一个XML文档。在XML中,每个地址可能返回多个位置,这个工作区假设XML文档中的第一个是最佳匹配的。通过编写更复杂的工作流,可以查亚搏在线看返回的所有位置并验证最佳匹配。
我们在
现在我们有了纬度(lat)和经度(lng)属性,我们使用2DPointReplacer在每个位置创建一个点,使用CoordinateSystemSetter将LL85设置为每个点的坐标系。
工作区中有一个MapInfo写入器,但是您可以用任何您希望的写入器替换它。
©2019安全亚搏在线软件公司|法律