Rev 3605 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
package uk.me.parabola.mkgmap.osmstyle.housenumber;
import uk.me.parabola.imgfmt.app.Coord;
import uk.me.parabola.mkgmap.general.CityInfo;
import uk.me.parabola.mkgmap.general.MapRoad;
import uk.me.parabola.mkgmap.general.ZipCodeInfo;
import uk.me.parabola.mkgmap.reader.osm.Element;
import uk.me.parabola.mkgmap.reader.osm.FakeIdGenerator;
import uk.me.parabola.mkgmap.reader.osm.Node;
import uk.me.parabola.mkgmap.reader.osm.Way;
import uk.me.parabola.util.Locatable;
class HousenumberElem
implements Locatable
{
protected final Element element
;
private int housenumber
;
private String sign
;
private String place
;
private CityInfo cityInfo
;
private ZipCodeInfo zipCode
;
private String street
;
//cache for Way elements to prevent calling Way.getCofG() repeatedly
private Coord location
;
public HousenumberElem
(Element el, CityInfo ci
) {
this.
element = el
;
this.
cityInfo = ci
;
}
public HousenumberElem
(HousenumberElem he
) {
this.
element = he.
element;
this.
housenumber = he.
housenumber;
this.
sign = he.
sign;
this.
street = he.
street;
this.
place = he.
place;
this.
cityInfo = he.
cityInfo;
this.
zipCode = he.
zipCode;
this.
location = he.
location;
}
public Element getElement
() {
return element
;
}
public int getHousenumber
() {
return housenumber
;
}
public void setHousenumber
(int housenumber
) {
this.
housenumber = housenumber
;
}
public String getSign
() {
return sign
;
}
public void setSign
(String sign
) {
this.
sign = sign
;
}
public String getPlace
() {
return place
;
}
public void setPlace
(String place
) {
this.
place = place
;
}
public String getStreet
() {
return street
;
}
public void setStreet
(String street
) {
this.
street = street
;
}
public MapRoad getRoad
(){
return null;
}
public CityInfo getCityInfo
(){
return cityInfo
;
}
public void setZipCode
(ZipCodeInfo zip
){
zipCode = zip
;
}
public ZipCodeInfo getZipCode
(){
return zipCode
;
}
@
Override
public Coord getLocation
() {
if (location ==
null){
if (element
instanceof Node)
location =
((Node) element
).
getLocation();
else
location =
((Way
) element
).
getCofG();
}
return location
;
}
@
Override
public String toString
() {
if (street
!=
null)
return street +
" " + sign
;
if (place
!=
null)
return place +
" " + sign
;
return "?" +
" " + sign
;
}
public String toBrowseURL
(){
if (FakeIdGenerator.
isFakeId(element.
getId())){
return getLocation
().
toOSMURL();
}
return element.
toBrowseURL();
}
}