/* * 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; } }