【发布时间】:2014-01-29 09:47:00
【问题描述】:
我正在尝试在 R 中绘制路线。.kml 文件来自 Marble,一个虚拟地球应用程序。它看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
<Document>
<visibility>1</visibility>
<Folder>
<name>Route Request</name>
<visibility>1</visibility>
<Placemark>
<name>Bari</name>
<visibility>1</visibility>
<ExtendedData>
<Data name="routingVisited">
<value>false</value>
</Data>
</ExtendedData>
<Point>
<coordinates>16.8511800000,41.1177300000,8.0000000000</coordinates>
</Point>
</Placemark>
<Placemark>
<name>Trani</name>
<visibility>1</visibility>
<ExtendedData>
<Data name="routingVisited">
<value>false</value>
</Data>
</ExtendedData>
<Point>
<coordinates>16.4153700000,41.2727300000,10.0000000000</coordinates>
</Point>
</Placemark>
</Folder>
<Document>
<name>47.1 km (OSRM)</name>
<visibility>1</visibility>
<Placemark>
<name>Route</name>
<visibility>1</visibility>
<LineString>
<coordinates>16.8512040000,41.1174370000 16.8508380000,41.1173690000 16.8504820000,41.1172040000 16.8494450000,41.1164640000 16.8489240000,41.1160100000 16.8488120000,41.1158720000 16.8488340000,41.1158380000 16.8513550000,41.1143390000 16.8521900000,41.1143730000 16.8524160000,41.1143590000 16.8526040000,41.1143640000 16.8526740000,41.1143290000 16.8526970000,41.1142450000 16.8528600000,41.1126580000
…
…
我可以用read.OGR读取文件:
library(rgdal)
> r1 <- "bari-trani.kml"
> kml1 <- readOGR(r1, layer = "Route Request") # start and end
OGR data source with driver: KML
Source: "bari-trani.kml", layer: "Route Request"
with 2 features and 2 fields
Feature type: wkbPoint with 3 dimensions
> kml2 <- readOGR(r1, layer = "47.1 km (OSRM)") # route information
OGR data source with driver: KML
Source: "bari-trani.kml", layer: "47.1 km (OSRM)"
with 24 features and 2 fields
Feature type: wkbLineString with 2 dimensions
我还可以绘制路线:
> plot(kml1)
> lines(kml2, col = "red")
我还学习了如何创建地图。我使用Openstreetmap 包:
library(OpenStreetMap)
> topleft <- c(42.08428793301783, 11.9741182832513)
> bottomright <- c(37.49482899208904, 19.1591768770013)
> map <- openmap(topleft, bottomright, type = "osm-bw")
> plot(map)
但是,我无法将路线显示在地图上。在地图之后绘制路线不会显示任何内容。有没有办法做到这一点?
【问题讨论】:
标签: r kml data-visualization openstreetmap