/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package osm.jp.api;
import java.util.ArrayList;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
/**
* OSM.xml の「Area(way)」ノード
* 例)
* <pre>{@code
* <node id="289445748" lat="35.5251815" lon="139.3256576">
* <tag k="amenity" v="fuel"/>
* <tag k="brand" v="出光"/>
* <tag k="name" v="出光"/>
* <tag k="name:en" v="Idemitsu"/>
* <tag k="opening_hours" v="24/7"/>
* </node>
* }</pre>
*
* @author yuu
*/
public class OsmnodeNode {
Node node = null;
String id = null;
String latStr = null;
String lonStr = null;
ArrayList<OsmnodeTag> tags = new ArrayList<>();
public OsmnodeNode(Node node) {
this.node = node;
NamedNodeMap attributes = node.getAttributes();
if (attributes != null) {
id = attributes.getNamedItem("id").getNodeValue();
latStr = attributes.getNamedItem("lat").getNodeValue();
lonStr = attributes.getNamedItem("lon").getNodeValue();
}
Node tagNodes = node.getFirstChild();
while(tagNodes != null) {
String nodeName = tagNodes.getNodeName();
switch (nodeName) {
case "tag":
OsmnodeTag nodetag = new OsmnodeTag(tagNodes);
tags.add(nodetag);
break;
}
tagNodes = tagNodes.getNextSibling();
}
}
public String getValue(String key) {
for (OsmnodeTag tag : tags) {
if (tag.key.equals(key)) {
return tag.value;
}
}
return null;
}
}