将静脉坐标转换为 GPS
Converting Veins Coordinates to GPS
我正在使用从 Lara Codeca OpenStreetMap for simulations with Veins, for example the Luxembourg scenario 导入的真实街道网络。现在,为了准备可视化(使用 Google Earth),我想将模拟中的车辆位置从 SUMO 或 OmNET 坐标导出到 GPS 坐标。
As material 我有用于生成场景的 OSM 文件,包括那里所有节点的 GPS 位置。我希望找到一个从模拟坐标到 GPS 坐标的简单映射,例如,通过知道边界框角和模拟游乐场的 GPS 坐标。
有没有一种简单的方法可以进行这种转换,如何找到生成游乐场时 OSM 转换使用的实际角点?
转换工作如下:
1。从 OmNET 访问位置信息
// Adapt your path to the mobility module here
Veins::TraCIMobility* mobility =
check_and_cast<Veins::TraCIMobility*>(
getParentModule()->getSubmodule("veinsmobility"));
Veins::TraCICommandInterface* traci = mobility->getCommandInterface();
Coord currPos = mobility->getCurrentPosition();
std::pair<double, double> currLonLat = traci->getLonLat(currPos);
getLonLat()
为我返回了绝对二维坐标,因此需要一个转换步骤。
2。寻找转变
SUMO 的 .net.xml 文件包含所需的转换。 <location>
标签包含需要的属性 netOffset
和 projParameters
。
对于卢森堡情景,这些是
netOffset="-285448.66,-5492398.13"
projParameter="+proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"
3。反转转换
图书馆PROJ.4 can be used to do the inversion. A Python interface is also available (pyproj).
import pyproj
projection = pyproj.Proj(
"+proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +units=m +no_defs")
# x, y obtained from OmNET
lon, lat = projection(x, y, inverse=True)
如果只有相对位置信息可用,则必须首先通过添加 netOffset 值来调整 x、y 值。
编辑
构建 SUMO --with-proj-gdal
支持时只需要第一步,getLonLat()
的结果将立即成为所需的格式。
我正在使用从 Lara Codeca OpenStreetMap for simulations with Veins, for example the Luxembourg scenario 导入的真实街道网络。现在,为了准备可视化(使用 Google Earth),我想将模拟中的车辆位置从 SUMO 或 OmNET 坐标导出到 GPS 坐标。
As material 我有用于生成场景的 OSM 文件,包括那里所有节点的 GPS 位置。我希望找到一个从模拟坐标到 GPS 坐标的简单映射,例如,通过知道边界框角和模拟游乐场的 GPS 坐标。
有没有一种简单的方法可以进行这种转换,如何找到生成游乐场时 OSM 转换使用的实际角点?
转换工作如下:
1。从 OmNET 访问位置信息
// Adapt your path to the mobility module here
Veins::TraCIMobility* mobility =
check_and_cast<Veins::TraCIMobility*>(
getParentModule()->getSubmodule("veinsmobility"));
Veins::TraCICommandInterface* traci = mobility->getCommandInterface();
Coord currPos = mobility->getCurrentPosition();
std::pair<double, double> currLonLat = traci->getLonLat(currPos);
getLonLat()
为我返回了绝对二维坐标,因此需要一个转换步骤。
2。寻找转变
SUMO 的 .net.xml 文件包含所需的转换。 <location>
标签包含需要的属性 netOffset
和 projParameters
。
对于卢森堡情景,这些是
netOffset="-285448.66,-5492398.13"
projParameter="+proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"
3。反转转换
图书馆PROJ.4 can be used to do the inversion. A Python interface is also available (pyproj).
import pyproj
projection = pyproj.Proj(
"+proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +units=m +no_defs")
# x, y obtained from OmNET
lon, lat = projection(x, y, inverse=True)
如果只有相对位置信息可用,则必须首先通过添加 netOffset 值来调整 x、y 值。
编辑
构建 SUMO --with-proj-gdal
支持时只需要第一步,getLonLat()
的结果将立即成为所需的格式。