Closed AnaBelgun closed 12 months ago
Related tickets and PRs:
For reference there is currently batch geocoder functionality in v7 with gnaf. I mention it because it might not be well known.
My index.js
contains the additional
import GnafAddressGeocoder from 'terriajs/lib/Map/GnafAddressGeocoder.js';
terriaOptions.batchGeocoder = new GnafAddressGeocoder();
and I can drag in a .csv file with an address column per https://github.com/TerriaJS/terriajs/pull/1755
In time this would be nice to retain (use with Bing?). I appreciate the priority is to implement the switch.
For NationalMap NationalMap uses now superseded 2012 dataset of official place names for one of its geocoders: https://ecat.ga.gov.au/geonetwork/srv/eng/catalog.search#/metadata/76695
This dataset is not maintained and was replaced with National Composite Gazetteer of Australia (https://placenames.fsdf.org.au/). Data in the Composite Gazetteer is updated more dynamically by individual jurisdictional custodians, hence there is no longer a yearly dataset published by Geoscience Australia, the most up-to-date data is always available from the app.
However, GA did provide a Linked Data API to the Composite Gazetteer which could be used to facilitate search/geocoding: https://ecat.ga.gov.au/geonetwork/srv/eng/catalog.search#/metadata/144182 http://fsdf.org.au/dataset/
We will continue to use Bing geocoder with a new key. If we approach usage limits we'll reconsider other geocoders.
Hi @steve9164 can you provide any further details about where you've generated the new Bing/Microsoft Key from? I've created a new Azure Maps Account in our portal but it generates a Primary and Secondary Key that do not seem to swap in and work.
Were there other code changes I've missed? Thanks!
Ah, the answer to this is don't go down the Azure Maps path, but the Bing Maps path, who knew they weren't synonyms of each other...
I am thoroughly confused.
Are these tickets because of https://blogs.bing.com/search-quality-insights/october-2020/Bing-Search-APIS-are-Transitioning or because of something specific to D61/CSIRO and their Bing agreements for their deployments?
Put differently, will the Bing search in the map I maintain stop working anytime soon? It uses a key we sourced from our Azure services. I appreciate you may not have all the answers
I ended up here because the Bing token I had issued via Azure Marketplace portal services had expired, in line with the details here https://docs.microsoft.com/en-us/bingmaps/articles/bing-maps-on-azure-marketplace
In looking to replace this I ended up going down the Azure Maps path which was a different product offering.
Anyway, if you're using a Bing token sourced through Azure Portal Services, then yes, I would have expected it to stop working and that you'd need to generate a new key via https://www.bingmapsportal.com/
Thanks @stevenjh
It has stopped working and it was too subtle for me to realise.
The CSIRO hosted GNAF geocoder must still be ok as our address searches are going somewhere.
Before looking into other services we should try Cesium ion geocoder - as it would most likely be easiest option to implement - maps will also already have (in vast majority of cases) a cesium ion account/token
The Cesium ion geocoder forwards to Bing these days, so that might be an easy option for you.
We already have a cesium ion plan, so I think the best first step is to implement the Cesium Ion Geocoder.
https://cesium.com/learn/cesiumjs/ref-doc/IonGeocoderService.html
Update 17 Oct 23:
Looking into docs there's this guide: https://developers.arcgis.com/cesiumjs/geocode-and-search/search-for-an-address/ but it seems that requires an ArcGIS developer key.
I've found this endpoint https://api.cesium.com/v1/geocode/autocomplete?text=123 fake street&access_token=<cesium acces token>
but looks like it's subject to the following conditions:
Geocoding
You may only use responses from the Geocoding API (“Geocodes”) in conjunction with Your Content.
You may not export, store or cache Geocodes.
You may use latitude and longitude information from Geocodes to position results on a map, but you may not display the latitudes or longitudes directly to others.
You may only query the Geocoding API in response to human user queries and human app interactions; you may not perform bulk or automated queries.
Hi @ljowen
The first link is for using the ArcGIS Geocoding service inside CesiumJS. We want to use the Cesium Ion Geocoder service. The documentation is pretty terrible, I can't even find a page describing the Cesium Ion Geocoder API.
You should be able to just create a IonGeocoderService
in TerriaJS and set the accessToken
parameter to terria.configParameters.cesiumIonAccessToken
Hi @nf-s I don't see the https://github.com/TerriaJS/terriajs/pull/5145 listed here. Still, it might be good to mention it as a proposed alternative to handling geocoders as part of the generic search providers definition, which will be entirely configurable through config/init files the same way the catalog items currently work. In that case, terriajs would only give search providers to users and what is used can be easily changed between environments. p.s. Of course, the current state of that PR is pretty old and it should be updated to new code structure to fit the recent changes but is it something terriajs team would consider adopting in the current codebase?
HI @zoran995
Sorry for the delayed reply. Absolutely, I think it would be a great improvement!
I would like to also review your PRs for adding new search providers
Do you have a preference for adding these before or after your new configurable search providers
Hi @nf-s, I would most definitely prioritise the configurable search providers, in that case, we might be able to defer new search providers to plugin based approach (still need to verify if it is possible)
There is this tool to compare different providers - https://getlon.lat/
are there plans for pelias?
We're currently using Bing geocoder along GNAF. Options: