changing file format for coordinates to be canonical

This commit is contained in:
Dennis Luxen 2013-09-26 11:52:15 +02:00
parent 043c8be747
commit e9d93ae210
2 changed files with 14 additions and 5 deletions

View File

@ -114,13 +114,17 @@ private:
SimpleLogger().Write(logDEBUG) << "Loading node data"; SimpleLogger().Write(logDEBUG) << "Loading node data";
NodeInfo current_node; NodeInfo current_node;
while(!nodes_input_stream.eof()) { unsigned number_of_coordinates = 0;
nodes_input_stream.read(
(char *)&number_of_coordinates,
sizeof(unsigned)
);
m_coordinate_list.resize(number_of_coordinates);
for(unsigned i = 0; i < number_of_coordinates; ++i) {
nodes_input_stream.read((char *)&current_node, sizeof(NodeInfo)); nodes_input_stream.read((char *)&current_node, sizeof(NodeInfo));
m_coordinate_list.push_back( m_coordinate_list[i] = FixedPointCoordinate(
FixedPointCoordinate(
current_node.lat, current_node.lat,
current_node.lon current_node.lon
)
); );
} }
std::vector<FixedPointCoordinate>(m_coordinate_list).swap(m_coordinate_list); std::vector<FixedPointCoordinate>(m_coordinate_list).swap(m_coordinate_list);

View File

@ -212,7 +212,12 @@ int main (int argc, char *argv[]) {
SimpleLogger().Write() << "writing node map ..."; SimpleLogger().Write() << "writing node map ...";
std::ofstream mapOutFile(nodeOut.c_str(), std::ios::binary); std::ofstream mapOutFile(nodeOut.c_str(), std::ios::binary);
mapOutFile.write((char *)&(internalToExternalNodeMapping[0]), internalToExternalNodeMapping.size()*sizeof(NodeInfo)); const unsigned size_of_mapping = internalToExternalNodeMapping.size();
mapOutFile.write((char *)&size_of_mapping, sizeof(unsigned));
mapOutFile.write(
(char *)&(internalToExternalNodeMapping[0]),
size_of_mapping*sizeof(NodeInfo)
);
mapOutFile.close(); mapOutFile.close();
std::vector<NodeInfo>().swap(internalToExternalNodeMapping); std::vector<NodeInfo>().swap(internalToExternalNodeMapping);