Details of Bing Confidence Levels - geocoding

Has anyone found a more complete description of what the Bing Confidence Enumeration values actually mean?
I'm trying to reconcile the results against another source of address data that has confidence values such as City, Street and Specific Address, and I want to get a feel for where the Bing results sit on this scale. I'm using the RESTful API.
The MSDN documentation only states that "High = The geocode service has high confidence in the match." etc.

Based on the MSDN documentation, you will be able to find various values for this property.
See: http://msdn.microsoft.com/en-us/library/ff701725.aspx
Extracted from the documentation:
The level of confidence that the geocoded location result is a match.
Use this value with the match code to determine for more complete
information about the match.
The confidence of a geocoded location is based on many factors
including the relative importance of the geocoded location and the
user’s location, if specified. The following description provides more
information about how confidence scores are assigned and how results
are ranked.
If the confidence is set to High, one or more strong matches were
found. Multiple High confidence matches are sorted in ranked order by
importance when applicable. For example, landmarks have importance but
addresses do not.
If a request includes a user location or a map area (see User Context
Parameters), then the ranking may change appropriately. For example, a
location query for "Paris" returns "Paris, France" and "Paris, TX"
both with High confidence. "Paris, France" is always ranked first due
to importance unless a user location indicates that the user is in or
very close to Paris, TX or the map view indicates that the user is
searching in that area.
In some situations, the returned match may not be at the same level as
the information provided in the request. For example, a request may
specify address information and the geocode service may only be able
to match a postal code. In this case, if the geocode service has a
high confidence that the postal code matches the data, the confidence
is set to High and the match code is set to UpHierarchy to specify
that it could not match all of the information and had to search
up-hierarchy.
If the location information in the query is ambiguous, and there is no
additional information to rank the locations (such as user location or
the relative importance of the location), the confidence is set to
Medium. For example, a location query for "148th Ave, Bellevue" may
return "148th Ave SE" and "148th Ave NE" both with Medium confidence.
If the location information in the query does not provide enough
information to geocode a specific location, a less precise location
value may be returned and the confidence is set to Medium. For
example, if an address is provided, but a match is not found for the
house number, the geocode result with a Roadblock entity type may be
returned. You can check the entityType field value to determine what
type of entity the geocode result represents. For a list of entity
types, see Entity Types.

Related

get solana transaction-history for a given address - based on date range

I want to use Rust or Python to retrieve historical Solana transactions for a given wallet - in a specific date range.
There is the get_confirmed_signature_for_address2() which returns signatures for a given address, with an option to get signatures before a given signature.
But how can I find historical transactions using a specific timestamp?
getBlockTime will give you the estimated time for a given block
getBlock will give the list of signatures in a specific block
getSignatures will get you the signatures for an address 1000 at a time, before or after a given signature.
Combine them with a binary search algorithm to find nearby timestamp

How do I use CNAM (Caller ID Name) with RingOut?

When I set the Caller ID Name and make a RingOut through the RingCentral Java API, the receiving number displays only my Main Number, not my Caller ID Name. How do I get the call to show the CNAM?
Full disclosure, I am the COO of Telo, the makers of OpenCNAM and EveryoneAPI.
I wanted to clarify a few things contained in the initial answer to this question. I have had to answer the questions as my rep power on Stack Overflow limits my ability to post this as a comment to the question. :/
First is a quick overview of network CNAM. Next, a brief explanation of how it works and the caveats. After that, there are some specifics around Telo products, which some folks may find of value.
Overview of Network CNAM
In the +1 dialing plan (NANP) there are over 20 databases that store CNAM values, or caller name, on behalf of the telephone carriers. In practice, about 12 of them are actually queried by CNAM providers. The terminating carrier (the carrier receiving the call) queries their CNAM provider milliseconds after receiving the call with the CID (telephone number). While the call is being set up to ring, the CNAM provider will return the name value associated with that telephone number so that it can be delivered with the telephone call.
How This Works
If network CNAM is being delivered -- meaning, the carrier-supplied values that are being stored by the carrier's storage provider -- then the CNAM provider will route the query to the appropriate storage provider based on the telephone number. If a number has been ported, then the NPAC will contain the information needed to resolve the number to the appropriate storage source to be queried. If there is no record in the NPAC, then the CNARG will contain the information needed to match the telephone number to the carrier, and thus the correct storage provider.
Caveats
The match-rate for useful name values in the traditional CNAM network is about 50%. This is due to the fact that not all carriers participate. For example, while it is easy to set up CNAM values for AT&T Wireless, T-Mobile, and Sprint, Verizon Wireless is 'opt-in' and is not automatically supported. There are other carriers that do not participate in the CNAM network, and still, other VoIP providers that do not update CNAM values. The traditional CNAM network also does not provide values for toll-free numbers, and only has coverage inside of the +1 dialing plan.
About OpenCNAM
While OpenCNAM provides network CNAM through its Standard service level, it also provides two service levels that address the limitations of network CNAM mentioned above. The Plus service level is optimized for coverage, match-rate, and accuracy, while the Value service level provides excellent coverage and match-rates, but is optimized for cost. You can find out more about the service levels here.
EveryoneAPI For Current Carrier and Linetype
Our other product, EveryoneAPI, provides the most accurate data around linetype (landline or mobile) and current carrier, which will include ported numbers. The coverage for these data-points is global and the match-rate is nearly 100%. While the numverify looks very useful, it is providing what is known as LERG data for the +1 dialing plan, from what I can tell. This will not accurately reflect carrier information for ported telephone numbers.
CNAM Overview and Limitations
CNAM / Caller ID Name support is dependent on the the type of numbers used by the calling and receiving (callee) parties.
Caller must be using a local landline number, otherwise the phone number will be displayed.
Receiver must be using a non-mobile number, otherwise the phone number will be displayed.
I validated this by calling two numbers, a mobile number that showed only the phone number and a landline number that showed the CNAM.
You can read more on CNAM in this Knowlegebase Article:
Outbound Caller ID Name Overview and Frequently Asked Questions
This mentions the following excerpts:
The Outbound Caller ID Number must be a local landline number.
Toll free numbers are not supported. When the Outbound Caller ID is set to a Toll Free number, only the number will display.
Mobile numbers do not support CNAM. If the receiving party is a Mobile number, only the number will display.
When the Outbound Caller ID is set to Blocked, the call recipient will see UNKNOWN or ANONYMOUS as the Caller ID/Caller Name.
Checking Receiving Line Type
Given that mobile numbers don't support CNAM, it's useful to see if the number you are calling is a mobile number of not. You can verify the type of number you are calling by using the numverify API (https://numverify.com/). You can also use this CLI app and Go SDK grokify/numverify. Look for the line_type property in the validate API response which can be mobile or landline.
For example (phone number changed):
{
"valid": true,
"number": "16505550100",
"local_format": "6505550100",
"international_format": "+16505550100",
"country_prefix": "+1",
"country_code": "US",
"country_name": "United States of America",
"location": "Redwood Cy",
"carrier": "AT\u0026T Mobility LLC",
"line_type": "mobile"
}
Checking the CNAM Database
Receiving systems have their own CNAM databases, but you can check to see if your name has propagated by calling a CNAM database API, such as the one provided by OpenCNAM (https://www.opencnam.com/). Here is an example call for OpenCNAM. Adding the format query parameter is very important as the API will retry an empty body without it.
curl -XGET 'https://api.opencnam.com/v3/phone/+16505550100?format=json&account_sid=<myAccountSID>&auth_token=<myAuthToken>
You will receive a response like:
{
"name": "My Caller ID Name",
"number": "+16505550100",
"price": 0.0039,
"uri": "/v3/phone/+16505550100"
}

How to get lat-long values of all areas in a city

I have tried to find a lot over the Internet but I am unable to get a perfect utility/API for my requirement.
I am interested in getting the latitude, longitude values of all areas in a city.
Currently i am using this google maps api
https://developers.google.com/maps/documentation/geocoding/start
But, when i enter a city name, it is giving only one lat-long pair for that city. Is there any way that if i give a city name, i can get all the areas and their corresponding latitude, longitude values?
Thanks.
There's a nice documentation for this at: Places API
I used this to get the latitude / longitude for one of my own projects and I also have an example of this.
If you look at the example, you can just type a location and it will immediately get the lat / long of the location and zoom in, you can also do this for more locations at the same time. Remember there is a limit for the maps api so it can only process so many data at the same time. Hope this may help you out! :)

Google Places vs. Qype vs. others

at the moment I am working on a regional evaluation system.
I actually want to e.g. find out how regions are composed, let us say given
a lat long coordinate and a radius. Hereby I would really like to be able to separate by type and it is also necessary for the data to be up to date.
So which API based services do you recommend, if the following factors are important:
support for lat/long coordinates with search radius
differentiation by type of location
up to date information
As far as I know Google places and qype.com offer APIs which should be able to do so.
Is there a better option or which of the both do you recommend and why?
As far as I found out only Qype and Google Places offer the APIs.
Google offers 1000 requests per day for free while Qype only offers 200,
but one could apply for multiple keys in Qype which enables you to do more requests a day.
With Qype it is possible to check the full amount of commercial establishments in range (bounding box or radius), while google places has a restriction to 60 places per request.
That is the reason why I decided to use Qype.
About whether or not the information is up to date I did not make an evaluation,
but Qype shows reasonable results when applied to Munich.

Geocoding Accuracy

I'm brand new to geocoding and have a relatively large dataset of addresses 100,000+. When I geocode them using MapMarker Professional I get about 10% that I'm not able to geocode with a high level of precision (I get mostly S2 precision values back which mean that it was able to match to a Primary Postal Code centroid, centerpoint of the Primary Postal Code boundary). Each of the addresses has already been standardized so they should be valid (I have taken a random sample and run them through the USPS Zip Code Lookup process to verify this). My question is, should I be able to geocode addresses with a higher degree of accuracy than what I'm seeing or am I expecting too much of the products currently on the market? I've tried geocoding using google and yahoo's services without any better luck. All of the services appear to be able to give me the postal code centroid, but none of them appear to have enough information to be able to give me distinct coordinates for houses in at least 98% of the addresses I send to it.
Thanks for any guidance you can provide,
Jeremy
Geocoding is an imprecise process. The addresses you are geocoding that don't have good precision are likely in rural areas, where it is not uncommon for addresses to be off by up to a mile.
They only know where addresses are by taking the number at the start and end of a street segment, and dividing from there.