Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
离线OSM和R_R_Openstreetmap_Offline_Geocode - Fatal编程技术网

离线OSM和R

离线OSM和R,r,openstreetmap,offline,geocode,R,Openstreetmap,Offline,Geocode,我希望openstreetmap具有离线功能。具体来说,我想知道是否有可能(我认为是这样)不使用API对某个地址进行地理编码。原因很简单,如果我有数十万个地址要进行地理编码,这将花费永远的时间。我已经有了shapefile,我知道你可以下载OSM后端,但我不知道如何“make”R调用OSM的离线版本 任何帮助都将不胜感激。对于离线OSM geocoder,您可以根据您的软件包使用的geocoder选择一个或另一个。我找到了解决问题的方法,主要在R: 首先,您需要克隆。然后您需要安装并启动dock

我希望openstreetmap具有离线功能。具体来说,我想知道是否有可能(我认为是这样)不使用API对某个地址进行地理编码。原因很简单,如果我有数十万个地址要进行地理编码,这将花费永远的时间。我已经有了shapefile,我知道你可以下载OSM后端,但我不知道如何“make”R调用OSM的离线版本


任何帮助都将不胜感激。

对于离线OSM geocoder,您可以根据您的软件包使用的geocoder选择一个或另一个。

我找到了解决问题的方法,主要在R:

首先,您需要克隆。然后您需要安装并启动docker


country感谢您的帮助,我对这一点非常陌生,因此如果我下载了Nagname,我如何“连接”R和Nagname?此外,如果我安装了Nagname,我如何将下载的形状文件“链接”到Nagname?理论上,您只需更改URL以指向您的本地Nagname Instance。我不知道在哪里设置此配置,因为我不是R用户。Namingm不适用于形状文件,它需要OSM数据,通常是XML或PBF。好的,谢谢你的帮助!我也不知道如何设置配置。。。但我认为这至少让我找到了正确的解决方案。谢谢请记住,“OSM”只是简单的数据。如果您需要地理编码器,那么您不需要“OSM的脱机版本”,而是需要基于OSM的脱机地理编码器。试着理解其中的区别。OSM是原始地图数据,而地理编码器、路由器等是软件。有很多基于OSM的软件可用,但OSM仍然只是数据,没有软件本身。
country <- "germany"
# Download new maps - NOTE, this is a large download (more than 3GB)
download.file(url      = paste0("http://download.geofabrik.de/europe/", country, "-latest.osm.pbf"),
          destfile = paste0("./Data/POIs/", country, "/latest.osm.pbf"))
# Download dictionary
download.file(url      = "https://raw.githubusercontent.com/MorbZ/OsmPoisPbf/master/doc/poi_types.csv",
          destfile = paste0("./Data/POIs/", country, "/poi_types_dict.csv"))
pois_dict <- read.csv(paste0("./Data/POIs/", country, "/poi_types_dict.csv", sep = ","))
pois_dict <- pois_dict[!is.na(pois_dict$CODE), ]

# Create local version of search engine car + foot
cmd1 <- paste0("cd ",getwd(),"/Data/POIs/", country)
cmd2 <- paste0("docker run -t -v $(pwd):/data osrm/osrm-backend osrm-extract -p /opt/car.lua /data/latest.osm.pbf")
cmd3 <- paste0("docker run -t -v $(pwd):/data osrm/osrm-backend osrm-contract /data/latest.osrm")
cmd4 <- paste0("docker run -t -i -p 5000:5000 -v $(pwd):/data osrm/osrm-backend osrm-routed /data/latest.osrm")

system(paste(cmd1, cmd2, cmd3, cmd4, sep = "; "))
txt <- getURL("http://127.0.0.1:5000/route/v1/driving/13.388860,53.517037;13.385983,52.496891?overview=false")