[geodisambig] Helper methods to add features for a given geoname/postal_code
This commit is contained in:
@@ -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)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user