Claims
- 1. A method for providing geographical information to a plurality of users, the plurality of users employing a plurality of formats, the method comprising:
encoding geographical data to generate default data in a parent class; overriding at least a portion of the default data via a sub-class so that access via the sub-class accesses customized data rather than the overridden default data; determining, in response to a user request specifying a country code, a class for processing geographical data corresponding to the country code; processing the user request via a parser to generate a parsed object; and matching the parsed object to generate a set of ordered matches corresponding to the parsed object for responding to the user request.
- 2. The method of claim 1 further including the step of selecting a parser corresponding to the country code.
- 3. The method of claim 1 further including the step of interpolating between known geographical points to generate geographical data corresponding to a selected match from the set of ordered matches for responding to the user request.
- 4. The method of claim 3 further including the step of interpolating to determine a geocode of a desired type from the selected match from the set of ordered matches for responding to the user request.
- 5. A geocoding engine for providing geocodes in response to receiving address information from a remote user, the geocoding engine comprising:
a module for detecting a country code designation in a request to provide a geocode a module for invoking a parser corresponding to the country code from the received request to provide a parsed input address; a module for detecting a postal-code corresponding to the country code in the received request; a module for detecting a world city name in the received request; a module for obtaining a candidate list corresponding to at least one member of the set consisting of the postal-code, the parsed input address, and the world city name; a module for invoking a matcher module for evaluating the candidate list by matching it to the input address; and a module for invoking an interpolator corresponding to the country code for generating a geocode corresponding to a selected candidate.
- 6. A system for providing spatial information to a plurality of users, the plurality of users employing a plurality of formats, the system comprising:
a generic Matcher module for identifying at least one geocode corresponding to a query; a generic interpolator module for determining at least one geocode datum in a database in response to receiving an input address; at least one servlet implemented on a local server for managing local requests by preprocessing and forwarding an input received from a client to the geocode engine and receiving a response from the geocoding engine and forwarding the response to the client; a geocode engine for coordinating at least one Interpolator, at least one Matcher module, and at least one database containing geocode data by determining whether customized data is available in preference to default data in response to the input received from the at least one servlet; and a parser coupled to the geocode engine for parsing a user request.
- 7. The system of claim 6 further including a local Matcher module.
- 8. The system of claim 6 further including a local Interpolator module.
- 9. The system of claim 6 further including a data constructor module for accepting input from a local data source and converting the data into at least one designated binary format suitable for a common database.
- 10. The system of claim 6 wherein the servlet is executing on a machine supporting multithreaded operations.
- 11. The system of claim 6 wherein the servlet is executing on a machine supporting single threaded operations in a thread_safe_mode.
- 12. The system of claim 6 wherein the servlet is executing on a machine having multiple processing units.
- 13. The system of claim 6 wherein the geocode engine handles each input from the at least one servlet independently.
- 14. The system of claim 13 wherein the geocode engine handles each input from the at least one servlet on a separate thread.
- 15. The system of claim 6 wherein a single geocoding engine handles all user requests for geocodes for addresses encompassing more than one country.
- 16. A computer readable media containing computer executable instructions for performing the steps of a method for providing geographical information to a plurality of users, the plurality of users employing a plurality of formats, the method comprising the steps of:
encoding geographical data to generate default data in a parent class; adding customized data to the default data via an overriding sub-class so that access via the sub-class accesses customized data rather than the default data accessed via the parent class; determining, in response to a user request specifying a country code, a class for processing geographical data corresponding to the country code; processing the user request via a parser to generate a parsed object; and matching the parsed object to generate a set of ordered matches corresponding to the parsed object for responding to the user request.
- 17. The computer readable media of claim 16 further including computer executable instructions for performing the step of selecting a parser corresponding to the country code.
- 18. The computer readable media of claim 16 further including computer executable instructions for performing the step of interpolating between known geographical points to generate geographical data corresponding to a selected match from the set of ordered matches for responding to the user request.
- 19. The computer readable media of claim 18 further including computer executable instructions for performing the step of interpolating to determine a geocode of a desired type from the selected match from the set of ordered matches for responding to the user request.
- 20. A geocoding message encoded in XML comprising at least one of the members of the set of elements consisting of RequestEnvelope, ResponseEnvelope, USA_GeocodeRequest, USA_ParsedAddress, USA_StreetAddressData, AddressNumber, PreDirectional, PostDirectional, StreetBase, PreThoroughfareType, PostThoroughfareType, USA_GeocodeConstraints, AddressConstraints, AddressCloseMatchConstraints, MustMatchHouseNumber, MustMatchStreet, MustMatchZipCode, MustMatchCity, MustMatchInput, SearchRadiusExtension, DistanceFromCorner, DistanceFromStreet, ZipConstraints, GeographicAreaConstraints, GeographicAreaCloseMatchConstraints, MustMatchUrbanization, MustMatchCounty, MustMatchState, PointOfInterestConstraints, CASSConstraints, USA_ResponseConstraints, MaxCandidates, SuccessResponse, FaultResponse, USA_GeocodeResponse, USA_GeocodeLocationList, USA_GeocodeLocation, USA_GeocodeFaultResponse, FaultMessage and FaultCode.
- 21. A geocoding message encoded in XML comprising at least one of the members of the group consisting of Package information, Generic address components, Response Constraints, Matching constraints, Matching quality information, and Country specific address components.
- 22. The geocoding message of claim 21 wherein the Package information includes at least one element from the group consisting of RequestEnvelope, ResponseEnvelope, GeocodeRequest, SuccessResponse, FaultResponse, ResponseCode, Message, GeocodeSummary, RequestResult, and GeocodeRequestType.
- 23. The geocoding message of claim 21 wherein the Generic address components includes at least one element from the group consisting of InputAddress, Address, AddressConstraints, AdditionalFields, AddressNumber, AreaName1, AreaName2, AreaName3, AreaName4, Country, GenericField1, GenericField2, GenericField3, GenericField4, MainAddress, placeName, postAddress, postCode1, postCode2, postDirectional, postThoroughfareType, preAddress, preDirectional, preThoroughfareType, unitType, unitValue, and Candidate, unitsOfMeasure.
- 24. The geocoding message of claim 21 wherein the Response contraints include at least one element from the group consisting of ReturnCloseMatchesOnly, IncludeRequest, IncludeParsedAddress, IncludeActualConstraints, MaxRanges, maxCandidates, offsetFromCorner, offsetFromStreet, and CoordinateReferenceSystem.
- 25. The geocoding message of claim 21 wherein the Matching constraints includes at least one element from the group consisting of FallbackToPostalCentroid, closeMatchesOnly, fallbackToGeographicCentroid, GeocodeConstraints, BaseConstraints, and AdditionalConstraints.
- 26. The geocoding message of claim 21 wherein the Matching quality information includes at least one element from the group consisting of addressNumberMatched, areaName2Matched, areaName1Matched, areaName3Matched, areaName4Matched, countryMatched, genericField1Matched, genericField2Matched, genericField3Matched, genericField4Matched, postCode1Matched, postCode2Matched,streetNameFieldsMatched, placeNameMatched, matchPrecision, TotalLocationsFound, TotalLocationsReturned, and TotalCloseMatchesFound.
- 27. The geocoding message of claim 21 wherein the Country specific address components includes at least one element from the group consisting of DEU_AddressData, Hnr, Postfach, Pirma, Str, PlzOrt, DEU_AddressGeographyData, PLZ, Ort, Country, MustMatchPlz, MustMatchHnr, MustMatchOrt, MustMatchStr, MustMatchInput, DEU_GeocodeFaultResponse, DEU_GeocodeLocationList, DEU_GeocodeLocation, DEU_GeocodeResponse, DEU_GeocodeLocationList, DEU_ParsedAddress, and DEU_GeocodeConstraints.
- 28. A method of providing geocoding information to a remote client, the method comprising receiving a request for geocoding informtion encoded in XML comprising at least one of the members of the group consisting of Package information, Generic address components, Response Constraints, Matching constraints, Matching quality information, and Country specific address component; and providing a response to the request in a response XML encoded message, the response XML message comprising at least one of the members of the group consisting of Package information, Generic address components, Response Constraints, Matching constraints, Matching quality information, and Country specific address component.
- 29. The method of claim 28 wherein the Package information includes at least one element from the group consisting of RequestEnvelope, ResponseEnvelope, GeocodeRequest, SuccessResponse, FaultResponse, ResponseCode, Message, GeocodeSummary, RequestResult, and GeocodeRequestType.
- 30. The method of claim 28 wherein the Generic address components includes at least one element from the group consisting of Inputaddress, Address, AddressConstraints, AdditionalFields, AddressNumber, AreaName1, AreaName2, AreaName3, AreaName4, Country, GenericField1, GenericField2, GenericField3, GenericField4, MainAddress, placeName, postaddress, postCode1, postCode2, postDirectional, postThoroughfareType, preAddress, preDirectional, preThoroughfareType, unitType, unitValue, and Candidate, unitsOfMeasure.
- 31. The method of claim 28 wherein the Response contraints include at least one element from the group consisting of ReturnCloseMatchesOnly, IncludeRequest, IncludeParsedAddress, IncludeActualConstraints, MaxRanges, maxCandidates, offsetFromCorner, offsetFromStreet, and CoordinateReferenceSystem.
- 32. The method of claim 28 wherein the Matching constraints includes at least one element from the group consisting of FallbackToPostalCentroid, closeMatchesOnly, fallbackToGeographicCentroid, GeocodeConstraints, BaseConstraints, and AdditionalConstraints.
- 33. The method of claim 28 wherein the Matching quality information includes at least one element from the group consisting of addressNumberMatched, areaName2Matched, areaName1Matched, areaName3Matched, areaName4Matched, countryMatched, genericField1Matched, genericField2Matched, genericField3Matched, genericField4Matched, postCode1Matched, postCode2Matched,streetNameFieldsMatched, placeNameMatched, matchPrecision, TotalLocationsFound, TotalLocationsReturned, and TotalCloseMatchesFound.
- 34. The method of claim 28 wherein the Country specific address components includes at least one element from the group consisting of DEU_AddressData, Hnr, Postfach, Pirma, Str, PlzOrt, DEU_AddressGeographyData, PLZ, Ort, Country, MustMatchPlz, MustMatchHnr, MustMatchOrt, MustMatchStr, MustMatchInput, DEU_GeocodeFaultResponse, DEU_GeocodeLocationList, DEU_GeocodeLocation, DEU_GeocodeResponse, DEU_GeocodeLocationList, DEU_ParsedAddress, and DEU_GeocodeConstraints.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to and claims priority of the United States provisional application No. 60/256,103 filed on May 31, 2001 by Julia Miller and Chuck Schwerin and entitled “SYSTEM AND METHOD FOR GEOCODING DIVERSE ADDRESS FORMATS,” which is incorporated herein by reference in its entirety.