Giter VIP home page Giter VIP logo

geoclient's People

Contributors

jqnatividad avatar mattyschell avatar mlipper avatar pow-devops2020 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

geoclient's Issues

Create geoclient-doc subproject

Create a Geoclient subproject whose purpose is to generate and publish various kinds of Geoclient documentation. For example:

  • Use of Asciidoctor or similar to create distribution documentation in various formats: PDF, Single-page HTML, epub, etc.
  • Integration code (when applicable) for hyperlinking to DCP's published Geosupport documentation
  • Use of Swagger or similar to allow form-based submission of geoclient requests

issues with similar street names

hi! i'm experiencing an issue where some street names are not recognized no matter how i type them in.

i am requesting results for the address "245 East 19th Street Manhattan NY 10003" but got the message "'19TH ST' NOT RECOGNIZED. THERE ARE 003 SIMILAR NAMES."

so i tried to search for every different iteration of the street name (with and without the "th" / using east vs. e and manhattan vs. new york etc) AND i tried word-for-word the "similar" names that the API result gave me... so the API told me there are several similar names:

'streetName1': 'EAST 19 STREET',
'streetName1In': '19TH ST',
'streetName2': 'WEST 19 STREET',
'streetName3': '19 PCT'

i tried searching for these verbatim and still got the same "similar names" response.. not sure what to do here! any help would be much appreciated!

Documentation for using OpenJDK

It is possible to use OpenJDK to build and run geoclient but there are some caveats which need to be documented. This is an imcomplete list:

  • Building geoclient from source requires the full JDK and not just the JRE. See the OpenJDK site for details.
  • The previous item also aplies when the C code (<jdk>/include/jni.h, <jdk>/include/<os>/jni_md.h). On some distributions, typedef macro(s) may be necessary to properly declare jlong in jni_md.h.
  • etc.

Simplify coordinate transformation dependencies

The Geosupport "address" function (1B) used by Geoclient returns the following point data in New York State Plane (EPSG:2263) feet:

  • Y coordinate (from 1E)
  • X coordinate (from 1E)
  • Internal label Y coordinate (from 1A)
  • Internal label X coordinate (from 1A)

Recent versions of Geosupport also return the first two elements above in "lat/long" (EPSG:4326). Geoclient adds lat/long point data for the third and fourth elements above using in-line sources from the legacy gis-common-geometry project which depends on GeoTools API's which, themselves, depend on several external libraries.

Investigate a simpler solution involving less code and dependencies.

Inconsistencies between geoclient and geo support

Hi there,

I'm currently using python-geosupport (https://github.com/ishiland/python-geosupport) with geosupport linux version-18d_18.4 and I noticed an issue.

For some of the addresses that have address number our of range, geosupport(with the help of geosupport python wrapper here) would give the results with return code 42 without a lat lon, but in geoclient, same address would give message2 "address number out of range" but with a corresponding lat and lon. Both methods are using function 1B, however they are giving different output.

Here are some examples:
g.address(house_number='45-06', street_name='64 STREET', borough_code='QN')
would return:
{
'Geosupport Return Code 2 (GRC 2)': '42',
'Warning Code': '',
'Continuous Parity Indicator / Duplicate Address Indicator': '',
'Federal Classification Code': '',
'Return Code': '42',
'Feature Type Code': '',
'Cooperative ID Number': '',
'Bike Traffic Direction': '',
'LIST OF GEOGRAPHIC IDENTIFIERS': [],
'Reserved for Tax Map Page Number': '',
'From Actual Segment Node ID': '0066650',
'2000 Census Block': '1003',
'FDNY ID': '',
'Number of Street Frontages of Lot': '',
'Filler - Tax Lot Version No. Billing BBL': '',
'From Preferred LGCs First Set of 5': '',
'No. of Cross Streets at High Address End': '1',
'Physical ID': '0082643',
'UNIT - SORT FORMAT': {
'UNIT - SORT FORMAT': '',
'Unit - Identifier': '',
'Unit - Type': ''
},
'Irregularly-Shaped Lot Flag': '',
'Reason Code 2': '',
"High BBL of this Building's Condominium Units": '',
'High House Number of Block Face': '100046098AA',
'Low House Number - Display Format': '',
'Bike Lane': '',
'TPAD New BIN': '',
'PUMA Code': '04109',
'List of Street Codes': [],
'Radius of Circle': '',
'Fire Company Type': 'E',
'DCP Preferred LGC': '01',
'To LION Node ID': '0045277',
'Blockface ID': '0102263027',
'Community Development Eligibility Indicator': 'E',
'First Street Name Normalized': '64 STREET',
'Street Width': '30',
'Side of Street Indicator': 'R',
'BOROUGH BLOCK LOT (BBL)': {
'Tax Block': '',
'Tax Lot': '',
'BOROUGH BLOCK LOT (BBL)': '',
'Borough Code': ''
},
'Police Patrol Borough Command': '6',
'Bike Lane 2': '',
'Sanitation Regular Collection Schedule': 'WS',
'Number of Parking Lanes on the Street': '2',
'List of Geographic Identifiers Overflow Flag': '',
'LION Key for Vanity Address': '4572602010',
'Filler': '',
'Third Street Name Normalized': '',
'Filler - Tax Log Version No. of High BBL': '',
'Node Number': '',
'Street Width Irregular': '',
'Turn Restrictions': '',
'List of Cross Street Names at High Address End': 'LAUREL HILL BOULEVARD',
'Street Attribute Indicator': 'H',
'Building Identification Number (BIN)': '',
'BOE Preferred B7SC': '41349001',
'Speed Limit': '25',
'No Cross Street Calculation Flag': '',
'Segment Identifier': '0113246',
'Generic ID': '0071729',
'Atomic Polygon': '149',
'Fire Division': '14',
'2010 Census Block Suffix': '',
'RPAD Building Classification Code': '',
'DSNY Bulk Pickup Schedule': 'EWS',
'Continuous Parity Indicator/Duplicate Address Indicator': '',
'Assembly District': '30',
'Angle to To Node - Alpha Value': '',
'TPAD BIN Status': '',
'Segment Type Code': 'U',
'Building Identification Number (BIN) of Input Address or NAP': '',
'Sanitation Recycling Collection Schedule': 'EW',
'B10SC - First Borough and Street Code': '41349001010',
'Self-Check Code (SCC) of Billing BBL': '',
'Secant Location Related to Curve': '',
'Internal Use': '',
'NYPD ID': '',
'Marble Hill/Rikers Island Alternate Borough Flag': '',
'Underlying Address Number for NAPs': '',
'Alley or Cross Street List Flag': '',
'Tax Map Number Section & Volume': '',
'Reason Code Qualifier': '',
'SPATIAL COORDINATES OF ACTUAL SEGMENT': {
'Z Coordinate, High Address End': '',
'Y Coordinate, Low Address End': '0209247',
'SPATIAL COORDINATES OF ACTUAL SEGMENT': '10114960209247 10114760208598',
'Y Coordinate, High Address End': '0208598',
'X Coordinate, High Address End': '1011476',
'X Coordinate, Low Address End': '1011496',
'Z Coordinate, Low Address End': ''
},
'Filler for Tax Lot Version Number': '',
'Fire Company Number': '292',
"Low BBL of this Building's Condominium Units": '',
'Traffic Direction': 'T',
'List of 4 LGCs': '01',
'Hurricane Evacuation Zone (HEZ)': 'X',
'To Preferred LGCs First Set of 5': '01',
'Marble Hill/Rikers Island Alternative Borough Flag': '',
'COMMUNITY DISTRICT': {
'COMMUNITY DISTRICT': '402',
'Community District Number': '02',
'Community District Borough Code': '4'
},
'Underlying B7SC': '41349001',
'Right Of Way Type': '',
'Legacy Segment ID': '0113246',
'SBVP (SANBORN MAP IDENTIFIER)': {
'Volume Number': '',
'SBVP (SANBORN MAP IDENTIFIER)': '',
'Page Number Suffix': '',
'Sanborn Borough Code': '',
'Page Number': '',
'Volume Number Suffix': ''
},
'Unit - Display Format': '',
'Angle to From Node - Beta Value': '',
'Condominium Unit ID Number': '',
'Filler - Tax Lot Version No. of Low BBL': '',
'Sanitation District': '402',
'DOT Street Light Contractor Area': '4',
'Business Improvement District (BID)': '',
'Reason Code': '',
'Community School District': '24',
'List of Cross Street Names at Low Address End': 'BEND',
'SPATIAL COORDINATES OF CENTER OF CURVATURE': {
'SPATIAL COORDINATES OF CENTER OF CURVATURE': '00000000000000',
'X Coordinate': '0000000',
'Y Coordinate': '0000000',
'Z Coordinate': ''
},
'Police Patrol Borough': 'QN',
'Low House Number of Block Face': '100044000AA',
'NIN': '',
'Message': '',
'Number of Cross Streets at Low Address End': '1',
'Individual Segment Length': '',
'Number of Street Codes and Street Names in List': '',
'Number of Existing Structures on Lot': '',
'Congressional District': '14',
'Street Status': '2',
'2010 Census Tract': '245',
'Number of Total Lanes on the Street': '3',
'Curve Flag': '',
'State Senatorial District': '12',
'House Number - Display Format': '45-06',
'Number of Travel Lanes on the Street': '1',
'Longitude': '',
'B10SC - Third Borough and Street Code': '',
'X-Y Coordinates of Lot Centroid': '',
'Condominium Flag': '',
'TPAD New BIN Status': '',
'RPAD Self-Check Code (SCC) for BBL': '',
'Number of Cross Streets at High Address End': '1',
'Civil Court District': '02',
'Low House Number - Sort Format': '',
'Street Width Maximum': '30',
'From Preferred LGCs Second Set of 5': '',
'Segment Orientation': 'S',
'NTA Name': 'WOODSIDE',
'Segment Azimuth': '268',
'ZIP Code': '11377',
'List of Cross Streets at High Address End': '45309001',
'Segment Length in Feet': '00650',
'Election District': '081',
'To Actual Segment Node ID': '0045277',
'Neighborhood Tabulation Area (NTA)': 'QN63',
'Number of Entries in List of Geographic Identifiers': '',
'From LION Node ID': '0066650',
'Reserved for Possible Z Coordinate': '',
'Special Address Generated Record Flag': '',
'Health Area': '0920',
'2000 Census Block Suffix': '',
'Split Election District Flag': '',
'Low House Number of Defining Address Range': '',
'Sanitation Collection Scheduling Section and Subsection': '1E',
'2010 Census Block': '3004',
'Second Street Name Normalized': '',
'Vacant Lot Flag': '',
'Warning Code 2': '',
'Reason Code Qualifier 2': '',
'Spatial X-Y Coordinates of Address': '10114830208932',
'DSNY Snow Priority Code': 'S',
'Roadway Type': '1',
'Coincidence Segment Count': '1',
'1990 Census Tract': '245',
'SPATIAL COORDINATES OF SEGMENT': {
'Z Coordinate, High Address End': '',
'Z Coordinate, Low Address End': '',
'Y Coordinate, Low Address End': '0209247',
'Y Coordinate, High Address End': '0208598',
'X Coordinate, High Address End': '1011476',
'X Coordinate, Low Address End': '1011496',
'SPATIAL COORDINATES OF SEGMENT': '10114960209247 10114760208598'
},
'List of Cross Streets at Low Address End': '435780',
'Split Low House Number': '100045000AA',
'Interior Lot Flag': '',
'DSNY Organic Recycling Schedule': 'EW',
'Fraction for Curve Calculation': '',
'List of Street Names': [],
'Health Center District': '41',
'Fire Battalion': '46',
'TPAD Conflict Flag': '',
'2000 Census Tract': '245',
'Street Attribute Indicators': 'H',
'Geosupport Return Code (GRC)': '00',
'BOE LGC Pointer': '1',
'B10SC - Second Borough and Street Code': '',
'Latitude': '',
'Police Precinct': '108',
'First Borough Name': 'QUEENS',
'DCP Zoning Map': '',
'Message 2': 'ADDRESS NUMBER OUT OF RANGE',
'Side of Street of Vanity Address': 'R',
'List of Second Set of 5 LGCs': '',
'DOF Condominium Identification Number': '',
'House Number - Sort Format': '100045006AA',
'USPS Preferred City Name': 'WOODSIDE',
'LION KEY': {
'LION KEY': '4572602010',
'Borough Code': '4',
'Sequence Number': '02010',
'Face Code': '5726'
},
'City Council District': '26',
'DCP Commercial Study Area': '',
'To Preferred LGCs Second Set of 5': '',
'Condominium Billing BBL': '',
'BOE Preferred Street Name': '64 STREET',
'Corner Code': '',
'STROLLING KEY': {
'Side of Street Indicator': '',
'5-Digit Street Code of ON- Street': '',
'STROLLING KEY': '',
'High House Number': '',
'Borough': ''
}
}

and in geoclient
{
"address": {
"assemblyDistrict": "30",
"boardOfElectionsPreferredLgc": "1",
"boePreferredStreetName": "64 STREET",
"boePreferredstreetCode": "41349001",
"boroughCode1In": "4",
"censusBlock2000": "1003",
"censusBlock2010": "3004",
"censusTract1990": " 245 ",
"censusTract2000": " 245 ",
"censusTract2010": " 245 ",
"cityCouncilDistrict": "26",
"civilCourtDistrict": "02",
"coincidentSegmentCount": "1",
"communityDistrict": "402",
"communityDistrictBoroughCode": "4",
"communityDistrictNumber": "02",
"communitySchoolDistrict": "24",
"congressionalDistrict": "14",
"crossStreetNamesFlagIn": "E",
"dcpPreferredLgc": "01",
"dotStreetLightContractorArea": "4",
"dynamicBlock": "149",
"electionDistrict": "081",
"fireBattalion": "46",
"fireCompanyNumber": "292",
"fireCompanyType": "E",
"fireDivision": "14",
"firstBoroughName": "QUEENS",
"firstStreetCode": "41349001010",
"firstStreetNameNormalized": "64 STREET",
"fromLionNodeId": "0066650",
"genericId": "0071729",
"geosupportFunctionCode": "1B",
"geosupportReturnCode": "00",
"geosupportReturnCode2": "42",
"healthArea": "0920",
"healthCenterDistrict": "41",
"highCrossStreetB5SC1": "453090",
"highCrossStreetCode1": "45309001",
"highCrossStreetName1": "LAUREL HILL BOULEVARD",
"highHouseNumberOfBlockfaceSortFormat": "100046098AA",
"houseNumber": "45-06",
"houseNumberIn": "45-06",
"houseNumberSortFormat": "100045006AA",
"hurricaneEvacuationZone": "X",
"instructionalRegion": "QN",
"interimAssistanceEligibilityIndicator": "E",
"latitude": 40.74010473007666,
"legacySegmentId": "0113246",
"lionBoroughCode": "4",
"lionBoroughCodeForVanityAddress": "4",
"lionFaceCode": "5726",
"lionFaceCodeForVanityAddress": "5726",
"lionKey": "4572602010",
"lionKeyForVanityAddress": "4572602010",
"lionSequenceNumber": "02010",
"lionSequenceNumberForVanityAddress": "02010",
"listOf4Lgcs": "01",
"longitude": -73.9017263539154,
"lowCrossStreetB5SC1": "435780",
"lowCrossStreetCode1": "435780",
"lowCrossStreetName1": "BEND",
"lowHouseNumberOfBlockfaceSortFormat": "100044000AA",
"message2": "ADDRESS NUMBER OUT OF RANGE",
"nta": "QN63",
"ntaName": "Woodside",
"numberOfCrossStreetB5SCsHighAddressEnd": "1",
"numberOfCrossStreetB5SCsLowAddressEnd": "1",
"numberOfCrossStreetsHighAddressEnd": "1",
"numberOfCrossStreetsLowAddressEnd": "1",
"numberOfStreetCodesAndNamesInList": "02",
"physicalId": "0082643",
"policePatrolBoroughCommand": "6",
"policePrecinct": "108",
"returnCode1a": "42",
"returnCode1e": "00",
"roadwayType": "1",
"sanitationCollectionSchedulingSectionAndSubsection": "1E",
"sanitationDistrict": "402",
"sanitationOrganicsCollectionSchedule": "EW",
"sanitationRecyclingCollectionSchedule": "EW",
"sanitationRegularCollectionSchedule": "WS",
"sanitationSnowPriorityCode": "S",
"segmentAzimuth": "268",
"segmentIdentifier": "0113246",
"segmentLengthInFeet": "00650",
"segmentOrientation": "S",
"segmentTypeCode": "U",
"sideOfStreetIndicator": "R",
"sideOfStreetOfVanityAddress": "R",
"splitLowHouseNumber": "100045000AA",
"stateSenatorialDistrict": "12",
"streetCode1": "43578001",
"streetCode6": "45309001",
"streetName1": "BEND",
"streetName1In": "64 STREET",
"streetName6": "LAUREL HILL BOULEVARD",
"streetStatus": "2",
"streetWidth": "30",
"toLionNodeId": "0045277",
"toPreferredLgcsFirstSetOf5": "01",
"trafficDirection": "T",
"underlyingStreetCode": "41349001",
"uspsPreferredCityName": "WOODSIDE",
"workAreaFormatIndicatorIn": "C",
"xCoordinate": "1011483",
"xCoordinateHighAddressEnd": "1011476",
"xCoordinateLowAddressEnd": "1011496",
"xCoordinateOfCenterofCurvature": "0000000",
"yCoordinate": "0208932",
"yCoordinateHighAddressEnd": "0208598",
"yCoordinateLowAddressEnd": "0209247",
"yCoordinateOfCenterofCurvature": "0000000",
"zipCode": "11377"
}
}

Here are another sample address
houseNumber=718&street=57+STREET&borough=Brooklyn

How are the lon lat generated in geoclient for those case?

Tests are failing (SingleFieldSearchHandlerTest)

Test Summary
129 tests / 13 failures

Failed tests
SingleFieldSearchHandlerTest. testFindLocationDefaultPolicy_addressWithTwoValidSimilarNames
SingleFieldSearchHandlerTest. testFindLocationDefaultPolicy_addressWithZipAndNoBorough
SingleFieldSearchHandlerTest. testFindLocationDefaultPolicy_blockfaceCrossStreetOneValidSimilarName
SingleFieldSearchHandlerTest. testFindLocationDefaultPolicy_blockfaceCrossStreetTwoValidSimilarName
SingleFieldSearchHandlerTest. testFindLocationDefaultPolicy_blockfaceExactMatch
SingleFieldSearchHandlerTest. testFindLocationDefaultPolicy_blockfaceOnStreetValidSimilarName
SingleFieldSearchHandlerTest. testFindLocationDefaultPolicy_exactAddressMatch
SingleFieldSearchHandlerTest. testFindLocationDefaultPolicy_exactBblMatch
SingleFieldSearchHandlerTest. testFindLocationDefaultPolicy_exactBinMatch
SingleFieldSearchHandlerTest. testFindLocationDefaultPolicy_exactPlaceMatch
SingleFieldSearchHandlerTest. testFindLocationDefaultPolicy_intersectionExactMatch
SingleFieldSearchHandlerTest. testFindLocationDefaultPolicy_intersectionWithCompassDirectionRequired
SingleFieldSearchHandlerTest. testFindLocationDefaultPolicy_intersectionWithOneValidSimilarName
Packages

Complete report:
Build_Fail.zip

Geotemporal geocoding

Ability to specify date when geocoding. This will allow users to see how an addresses' attributes change over time (e.g. congressional district, election district, etc.)

This will require using older releases of Geosupport based on the given date.
cc @rcheetham

Results differ between Single Field Search and Address endpoints

Perhaps this is expected behavior, but I get different results from these two endpoints with the same address:

https://api.cityofnewyork.us/geoclient/v1/address.json?houseNumber=219-15&street=130%20Dr&borough=queens

and

https://api.cityofnewyork.us/geoclient/v1/search.json?input=219-15%20130%20Dr%20Laurelton

Interestingly, if I try the sfs like this:

https://api.cityofnewyork.us/geoclient/v1/search.json?input=219-15%20130%20Dr%20Queens

It does work. The api docs says:

If the input string ends with a known N.Y.C. city name it is removed and kept as a <CITY_NAME> token:

So I would think this would work?
Thanks!

Native tasks failing when run from Eclipse/Buildship

The current build uses MinGW-w64 to build Windows 64bit binaries. The Gradle native tasks work as expected when building from the provided Msys shell. The native tasks fail, however, when run from Eclipse using the Buildship plugin:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':geoclient-native:assemble'.
> No buildable binaries found:
    - shared library 'geoclient:linux_x64:sharedLibrary': No tool chain is available to build for platform 'linux_x64':
        - Tool chain 'gcc' (GNU GCC): Don't know how to build for platform 'linux_x64'.
    - static library 'geoclient:linux_x64:staticLibrary': No tool chain is available to build for platform 'linux_x64':
        - Tool chain 'gcc' (GNU GCC): Don't know how to build for platform 'linux_x64'.
    - shared library 'geoclient:windows_x64:sharedLibrary': No tool chain is available to build for platform 'windows_x64':
        - Tool chain 'gcc' (GNU GCC): Could not find C compiler 'gcc' in system path.
    - static library 'geoclient:windows_x64:staticLibrary': No tool chain is available to build for platform 'windows_x64':
        - Tool chain 'gcc' (GNU GCC): Could not find C compiler 'gcc' in system path.
    - shared library 'geoclientJni:linux_x64:sharedLibrary': No tool chain is available to build for platform 'linux_x64':
        - Tool chain 'gcc' (GNU GCC): Don't know how to build for platform 'linux_x64'.
    - static library 'geoclientJni:linux_x64:staticLibrary': No tool chain is available to build for platform 'linux_x64':
        - Tool chain 'gcc' (GNU GCC): Don't know how to build for platform 'linux_x64'.
    - shared library 'geoclientJni:windows_x64:sharedLibrary': No tool chain is available to build for platform 'windows_x64':
        - Tool chain 'gcc' (GNU GCC): Could not find C compiler 'gcc' in system path.
    - static library 'geoclientJni:windows_x64:staticLibrary': No tool chain is available to build for platform 'windows_x64':
        - Tool chain 'gcc' (GNU GCC): Could not find C compiler 'gcc' in system path.
    - executable 'geoclientTest:linux_x64:executable': No tool chain is available to build for platform 'linux_x64':
        - Tool chain 'gcc' (GNU GCC): Don't know how to build for platform 'linux_x64'.
    - executable 'geoclientTest:windows_x64:executable': No tool chain is available to build for platform 'windows_x64':
        - Tool chain 'gcc' (GNU GCC): Could not find C compiler 'gcc' in system path.

This is presumably because the required tool binaries are in various directories and need to be on the PATH of the JVM Buildship configures and then uses to run Gradle. I'm guessing there's a straightforward solution to fixing this like creating an Eclipse 'run configuration' and setting environment variables. However, I don't see an obvious way of doing this for Buildship.

Although the Gradle build itself can be configured to look for gcc in a certain directory (directories?), I'd rather not have to maintain the knowledge of MinGW-w64's internal PATH configuration (I am already confused by their naming conventions, directory structure, etc.).

The fix is most likely simple, but I am tabling it until I have time to do some reading.

address contains appartment number returned reject response

it might be good to enhance the "Single-field Search" Geoclient parser to ignore/remove the user input address with apartment number or floor number. For example, a real live example of valid address "37 WEST 26TH STREET - 6TH FLOOR, 10010" will return "REJECTED" status.

Create subproject for test support and data

Create geoclient-test subproject to provide:

  • Utility libraries to minimize unique pain of functional and integration testing
  • Geosupport data stores and test harness for pre/post-release regression testing
  • Operating system-specfic scripts and hacks to insure actual geoclient source code remains as platform-neutral as possible.

Daily maintenance

Does the geoclient API undergo daily maintenance between 3am-4am? We have an app that calls your service. That app is continually monitored by WebSite Pulse to ensure the app is functioning. WebSite Pulse errors for this app's monitor every day, at the step that calls the geoclient api. Can you confirm that the api service is down daily for maintenance and what that maintenance window is? Many thanks!!!

Java compilation error with latest master

Building the geoclient-service module now fails with:

/home/geoclient/git/geoclient/geoclient-service/src/main/java/gov/nyc/doitt/gis/geoclient/service/web/RestController.java:47: error: annotation CrossOrigin is missing value for the attribute
@crossorigin
^
/home/geoclient/git/geoclient/geoclient-service/src/main/java/gov/nyc/doitt/gis/geoclient/service/search/web/SingleFieldSearchController.java:34: error: annotation CrossOrigin is missing value for the attribute
@crossorigin

This appears to be a problem that is fixed only in the very most recent version of the java jdk, this post had an answer:

We faced the same issue. When using eclipse compiler to build your project (ejc) it works fine, but does NOT compile at all with javac. This is a known and resolved issue in java 1.8 and has been back-ported to java 7. So, Update to the latest java 7 version (7u80) or Java 8 version.
Here is the bug:
https://bugs.openjdk.java.net/browse/JDK-8013485

https://spring.io/blog/2015/06/08/cors-support-in-spring-framework

Upgrading did fix the compilation problem, but this has to be included in the build instructions-

PS - Or should we be building with a java 8 jdk at this point?

Docker image for Geoclient

First off, making this open source and available to the public is amazing! Thank you so much.

I'd love to deploy this on my own server for a project, as I'm sure many others would. Creating a Docker image would make it easy for others to stand up their own Geoclient quickly, without the fuss of building it themselves.

I've had some experience with Docker, and I'd be happy to help get make an image for this. But in order to do so, it'd be helpful to have a more robust list of requirements/versions as well as a list of steps to setup and start a Geoclient instance. The README in this repo is looking a little sparse right now; is there more robust documentation on the install/build/configuration/running of Geoclient?

Replace problematic external dependencies

The geoclient-service project and several other downstream legacy projects rely on libraries that are unmaintained and/or can be replaced with more stable API's. In particular:

  • com.intera.util:spring-jsonp-support: Latest versions of Spring web API's have built-in JSONP support options.
  • net.sf.dozer:dozer: Active development seems stalled, recent versions have serious bugs. Many stable candidates to replace Dozer for Value Object "copy-transform" functionality from external configuration. Apache BeanUtils likely easiest because it's already a project dependency.
  • org.jogamp.gluegen:gluegen: Great library but almost unnecessary given the virtually non-existent C soruce and relatively unchanging work area API.
  • See #10

clarify how to access API

I read through https://api.cityofnewyork.us/geoclient/v1/doc, and it wasn't clear to me:

  • What the base URL for the API endpoints is
  • How to get an application ID and key

It was only through a close read of https://developer.cityofnewyork.us/api/geoclient-api that I saw

Access to the service requires registering for a free account on this website and requesting an access key.

Would be great to:

Thanks!

2020 NTAs

Is there a plan/timeline for adding the 2020 NTAs to the geoclient?

Thanks.

Update parser city-names.properties

@mlipper In order to put some constraints on this update can you say a little about the intent of city-names.properties?

Reverse-engineering from what's listed there I see "city names" in the sense that these names are recognized by the United States Post Office as preferred or alternative USPS city names. Most people would define Jackson Heights, for example, as a neighborhood name in the Borough of Queens.

Do you have any wish to add more neighborhood names to this list?

UPPER\ WEST\ SIDE=MANHATTAN

Or stick with USPS city name alternatives only?

Add DSNY bulk pick-up to F1B

Add DSNY bulk pick up field to function 1B response.
Decide whether to use existing or new naming convention: sanitationBulkPickUp vs. dsnyBulkPickUp

Documentation for installing GeoSupport on Linux?

The readme says that "details are coming soon", I'm wondering if there are any basic pointers for where to put/setup the geosupport library. I tried to build geoclient, but I get:

"java.lang.IllegalArgumentException: Neither path nor baseDir may be null or empty string. path='null' basedir='/home/git/geoclient/geoclient-native"

I suspect this has something to do with it not finding geosupport?

Reverse Geocoding

Given location coordinates, give the normalized address. Perhaps, can be done by integrating with other open-source projects? cc @riordan

Function AP

Add support for Geosupport's Function AP (Address Point) which provides NY State Plane coords for known building entrances.

latitude and latitudeInternalLabel Best Practice

For 85 5th Ave, NY, NY, the internalLabel version of latlong is here:

40 44_14_2_n_73 59_31_8_w_-_google_maps

For plain latlong, its here:
40 44_14_7_n_73 59_33_3_w_-_google_maps

What's the best practice/recommendation when geocoding NYC addresses? When should one use the internalLabel version, and the plain latlong version?

Reorganize generated documentation

The geoclient-service module uses the geoclient-doc.xml configuration file in the geoclient-core subproject to provide dynamically rendered HTML-based documentation at runtime. This is both unnecessary and error-prone.

Originally, the Geoclient XML metadata was created by parsing Geosupport's Universal Programming Guide PDF document to produce a "base" set of field definitions for the data elements returned by the various Geoclient endpoints (address, bbl, etc.) by mapping the endpoints to their proxy targets (Geosupport functions) using the UPG's data dictionary.

Due to variance in the PDF's (which were not intended for this kind of reverse-engineering) and the use of "tech bulletins" by DCP to announce new release changes, this "automated" integration quickly became a manual process resulting neglect and inclomplete/out-of-date generated HTML.

DCP has recently communicated its intention to place this documentation content online as part of their GOAT application. As such, Geoclient should simply link returned data fields on a per-endpoint basis to the appropriate section of GOAT and get rid of the convoluted code for assembling this info using XStream.

Update the v2 docs examples with 2020 census data

The example JSON and XML responses on the v2 docs page don't include 2020 census results.

Since this is kind of a hot (relatively speaking) topic for users and also a source of confusion when attempting to understand v1 vs v2 I suggest adding currently returned 2020 census data to the examples.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.