[geodisambig] Helper methods to add features for a given geoname/postal_code

This commit is contained in:
Al
2015-07-06 12:41:05 -04:00
parent 0c5e741bb6
commit 0df816fd31
2 changed files with 24 additions and 1 deletions

View File

@@ -99,4 +99,23 @@ bool geodisambig_add_geo_features(cstring_array *features, char *name, double la
return true;
}
}
bool geodisambig_add_geoname_features(cstring_array *features, geoname_t *geoname) {
return (geoname != NULL
&& geodisambig_add_name_feature(features, geoname->name)
&& geodisambig_add_country_feature(features, geoname->name, geoname->country_code)
&& (geoname->admin1_geonames_id == 0 || geodisambig_add_admin1_feature(features, geoname->name, geoname->admin1_geonames_id))
&& (geoname->admin2_geonames_id == 0 || geodisambig_add_admin2_feature(features, geoname->name, geoname->admin2_geonames_id))
&& (geodisambig_add_geo_features(features, geoname->name, geoname->latitude, geoname->longitude))
);
}
bool geodisambig_add_postal_code_features(cstring_array *features, gn_postal_code_t *postal_code) {
return (postal_code != NULL
&& geodisambig_add_name_feature(features, postal_code->code)
&& geodisambig_add_country_feature(features, postal_code->country_code)
);
}

View File

@@ -7,6 +7,7 @@
#include "geohash/geohash.h"
#include "features.h"
#include "geonames.h"
#include "string_utils.h"
#define PLACE_NAME_FEATURES_DEFAULT_LENGTH 128
@@ -22,4 +23,7 @@ bool geodisambig_add_admin1_feature(cstring_array *features, char *name, uint32_
bool geodisambig_add_admin2_feature(cstring_array *features, char *name, uint32_t admin2_id);
bool geodisambig_add_geo_features(cstring_array *features, char *name, double latitude, double longitude);
bool geodisambig_add_geoname_features(cstring_array *features, geoname_t *geoname);
bool geodisambig_add_postal_code_features(cstring_array *features, gn_postal_code_t *postal_code);
#endif