示例#1
0
TypeConfig::TypeConfig()
    : nextTagId(0),
      nextTypeId(0)
{
    // Make sure, that this is always registered first.
    // It assures that id 0 is always reserved for tagIgnore
    RegisterTagForInternalUse("");

    RegisterTagForExternalUse("name");
    RegisterTagForExternalUse("ref");
    RegisterTagForExternalUse("bridge");
    RegisterTagForExternalUse("tunnel");
    RegisterTagForExternalUse("layer");
    RegisterTagForExternalUse("type");
    RegisterTagForExternalUse("width");
    RegisterTagForExternalUse("oneway");
    RegisterTagForExternalUse("addr:housenumber");
    RegisterTagForExternalUse("addr:street");
    RegisterTagForExternalUse("junction");
    RegisterTagForExternalUse("maxspeed");
    RegisterTagForExternalUse("restriction");
    RegisterTagForExternalUse("surface");
    RegisterTagForExternalUse("tracktype");
    RegisterTagForExternalUse("place");
    RegisterTagForExternalUse("place_name");
    RegisterTagForExternalUse("boundary");
    RegisterTagForExternalUse("admin_level");

    RegisterTagForExternalUse("access");
    RegisterTagForExternalUse("access:foward");
    RegisterTagForExternalUse("access:backward");

    RegisterTagForExternalUse("access:foot");
    RegisterTagForExternalUse("access:foot:foward");
    RegisterTagForExternalUse("access:foot:backward");

    RegisterTagForExternalUse("access:bicycle");
    RegisterTagForExternalUse("access:bicycle:foward");
    RegisterTagForExternalUse("access:bicycle:backward");

    RegisterTagForExternalUse("access:motor_vehicle");
    RegisterTagForExternalUse("access:motor_vehicle:foward");
    RegisterTagForExternalUse("access:motor_vehicle:backward");

    RegisterTagForExternalUse("access:motorcar");
    RegisterTagForExternalUse("access:motorcar:foward");
    RegisterTagForExternalUse("access:motorcar:backward");

    RegisterTagForInternalUse("area");
    RegisterTagForInternalUse("natural");

    TypeInfo ignore;
    TypeInfo route;
    TypeInfo tileLand;
    TypeInfo tileSea;
    TypeInfo tileCoast;
    TypeInfo tileUnknown;
    TypeInfo tileCoastline;

    // Make sure, that this is always registered first.
    // It assures that id 0 is always reserved for typeIgnore
    ignore.SetType("");

    AddTypeInfo(ignore);

    // Internal type for showing routes
    route.SetType("_route")
    .CanBeWay(true);

    // Internal types for the land/sea/coast tiles building the base layer for map drawing
    tileLand.SetType("_tile_land")
    .CanBeArea(true);
    tileSea.SetType("_tile_sea")
    .CanBeArea(true);
    tileCoast.SetType("_tile_coast")
    .CanBeArea(true);
    tileUnknown.SetType("_tile_unknown")
    .CanBeArea(true);
    tileCoastline.SetType("_tile_coastline")
    .CanBeWay(true);

    AddTypeInfo(route);
    AddTypeInfo(tileLand);
    AddTypeInfo(tileSea);
    AddTypeInfo(tileCoast);
    AddTypeInfo(tileUnknown);
    AddTypeInfo(tileCoastline);

    typeTileLand=GetTypeId("_tile_land");
    typeTileSea=GetTypeId("_tile_sea");
    typeTileCoast=GetTypeId("_tile_coast");
    typeTileUnknown=GetTypeId("_tile_unknown");
    typeTileCoastline=GetTypeId("_tile_coastline");

    tagRef=GetTagId("ref");
    tagBridge=GetTagId("bridge");
    tagTunnel=GetTagId("tunnel");
    tagLayer=GetTagId("layer");
    tagType=GetTagId("type");
    tagWidth=GetTagId("width");
    tagOneway=GetTagId("oneway");
    tagHouseNr=GetTagId("addr:housenumber");
    tagStreet=GetTagId("addr:street");
    tagJunction=GetTagId("junction");
    tagMaxSpeed=GetTagId("maxspeed");
    tagRestriction=GetTagId("restriction");
    tagSurface=GetTagId("surface");
    tagTracktype=GetTagId("tracktype");
    tagPlace=GetTagId("place");
    tagBoundary=GetTagId("boundary");
    tagAdminLevel=GetTagId("admin_level");

    tagAccess=GetTagId("access");
    tagAccessForward=GetTagId("access:foward");
    tagAccessBackward=GetTagId("access:backward");

    tagAccessFoot=GetTagId("access:foot");
    tagAccessFootForward=GetTagId("access:foot:foward");
    tagAccessFootBackward=GetTagId("access:foot:backward");

    tagAccessBicycle=GetTagId("access:bicycle");
    tagAccessBicycleForward=GetTagId("access:bicycle:foward");
    tagAccessBicycleBackward=GetTagId("access:bicycle:backward");

    tagAccessMotorVehicle=GetTagId("access:motor_vehicle");
    tagAccessMotorVehicleForward=GetTagId("access:motor_vehicle:foward");
    tagAccessMotorVehicleBackward=GetTagId("access:motor_vehicle:backward");

    tagAccessMotorcar=GetTagId("access:motorcar");
    tagAccessMotorcarForward=GetTagId("access:motorcar:foward");
    tagAccessMotorcarBackward=GetTagId("access:motorcar:backward");

    tagArea=GetTagId("area");
    tagNatural=GetTagId("natural");

    assert(tagRef!=tagIgnore);
    assert(tagBridge!=tagIgnore);
    assert(tagTunnel!=tagIgnore);
    assert(tagLayer!=tagIgnore);
    assert(tagType!=tagIgnore);
    assert(tagWidth!=tagIgnore);
    assert(tagOneway!=tagIgnore);
    assert(tagHouseNr!=tagIgnore);
    assert(tagStreet!=tagIgnore);
    assert(tagJunction!=tagIgnore);
    assert(tagMaxSpeed!=tagIgnore);
    assert(tagRestriction!=tagIgnore);
    assert(tagSurface!=tagIgnore);
    assert(tagTracktype!=tagIgnore);
    assert(tagPlace!=tagIgnore);
    assert(tagBoundary!=tagIgnore);
    assert(tagAdminLevel!=tagIgnore);

    assert(tagAccess!=tagIgnore);
    assert(tagAccessForward!=tagIgnore);
    assert(tagAccessBackward!=tagIgnore);

    assert(tagAccessFoot!=tagIgnore);
    assert(tagAccessFootForward!=tagIgnore);
    assert(tagAccessFootBackward!=tagIgnore);

    assert(tagAccessBicycle!=tagIgnore);
    assert(tagAccessBicycleForward!=tagIgnore);
    assert(tagAccessBicycleBackward!=tagIgnore);

    assert(tagAccessMotorVehicle!=tagIgnore);
    assert(tagAccessMotorVehicleForward!=tagIgnore);
    assert(tagAccessMotorVehicleBackward!=tagIgnore);

    assert(tagAccessMotorcar!=tagIgnore);
    assert(tagAccessMotorcarForward!=tagIgnore);
    assert(tagAccessMotorcarBackward!=tagIgnore);

    assert(tagArea!=tagIgnore);
    assert(tagNatural!=tagIgnore);
}
示例#2
0
  TypeConfig::TypeConfig()
   : nextTagId(0),
     nextTypeId(0)
  {
    // Make sure, that this is always registered first.
    // It assures that id 0 is always reserved for tagIgnore
    RegisterTagForInternalUse("");

    RegisterTagForExternalUse("admin_level");
    RegisterTagForExternalUse("boundary");
    RegisterTagForExternalUse("bridge");
    RegisterTagForExternalUse("highway");
    RegisterTagForExternalUse("layer");
    RegisterTagForExternalUse("name");
    RegisterTagForExternalUse("natural");
    RegisterTagForExternalUse("oneway");
    RegisterTagForExternalUse("place");
    RegisterTagForExternalUse("place_name");
    RegisterTagForExternalUse("ref");
    RegisterTagForExternalUse("restriction");
    RegisterTagForExternalUse("tunnel");
    RegisterTagForExternalUse("type");
    RegisterTagForExternalUse("width");
    RegisterTagForExternalUse("area");
    RegisterTagForExternalUse("addr:housenumber");

    TypeInfo ignore;
    TypeInfo route;

    // Make sure, that this is always registered first.
    // It assures that id 0 is always reserved for typeIgnore
    ignore.SetType("");

    AddTypeInfo(ignore);

    route.SetType("_route")
         .CanBeWay(true);

    AddTypeInfo(route);

    tagAdminLevel=GetTagId("admin_level");
    tagBoundary=GetTagId("boundary");
    tagBridge=GetTagId("bridge");
    tagLayer=GetTagId("layer");
    tagName=GetTagId("name");
    tagOneway=GetTagId("oneway");
    tagPlace=GetTagId("place");
    tagPlaceName=GetTagId("place_name");
    tagRef=GetTagId("ref");
    tagTunnel=GetTagId("tunnel");
    tagType=GetTagId("type");
    tagWidth=GetTagId("width");
    tagArea=GetTagId("area");
    tagHouseNr=GetTagId("addr:housenumber");

    assert(tagAdminLevel!=tagIgnore);
    assert(tagBoundary!=tagIgnore);
    assert(tagBridge!=tagIgnore);
    assert(tagLayer!=tagIgnore);
    assert(tagName!=tagIgnore);
    assert(tagOneway!=tagIgnore);
    assert(tagPlace!=tagIgnore);
    assert(tagPlaceName!=tagIgnore);
    assert(tagRef!=tagIgnore);
    assert(tagTunnel!=tagIgnore);
    assert(tagType!=tagIgnore);
    assert(tagWidth!=tagIgnore);
    assert(tagArea!=tagIgnore);
    assert(tagHouseNr!=tagIgnore);
  }