How reliable are GeoIP services for mobile roaming? - mobile

Currently, I'm using Quova but I'm struggling to find/understand the accuracy of GeoIP (to a country resolution) when a user is on a mobile network (not WiFi) and roaming outside of their home country.
If the IP address of a device is allocated from the home network, then obviously GeoIP isn't going to be accurate (in fact, it will be plain old wrong).
If the IP address is allocated from the current country network, then I'm sure it will work fine.
Does anyone have any information / figures on home mobile networks allocate IP addresses (and from where)? Is it generally (1.) or (2.)?

In S. Triukose et al., "Geolocating IP Addresses in Cellular Data Networks", unpublished(?) http://people.cse.iitd.ernet.in/~aseth/ipaddresses_geolocating_cellular.pdf, section 4.3 states:
We also observed an outlier at 17,000km (not shown on the plot)
which correspond to an Australian user roaming in the Netherlands.
If I understand your question correctly, it seems like in this case, it would be number 1.

Related

USPS API for Address Correction Response Question

I want to use the USPS API https://www.usps.com/business/web-tools-apis/address-information-api.htm for correcting addresses typed into our application.
Specifically, I will add a little button next to the address that will allow the user send the typed address to the service and then confirm that that the returned address is the one they would like to replace it with.
I have seen other websites do this and I like it because the user has control over inserting errant addresses returned by USPS. [I am not saying that the USPS data is bad; the likely scenario is that the entered address is so bad the USPS guessed wrong].
Anyway, I am looking at the response sample for the verify service:
I am observing that only one guess at the real address is returned. Other services I have seen return multiple so the user can pick the best one.
Is there an option on the USPS API that will return multiple guesses for a single address?
Note: the Address ID='0' is for sending multiple addresses and being able to sort it out in the returned data.
The address you input contained the suite number (STE K) so there is no ambiguity with the result. It is a "precise match". If you remove the "STE K" from the input address, the response will contain a ZIP + 4, but the DPV parameters will indicate that the match is a "default match". This type of match occurs with high rises and apartment complexes, where there is a main street address which has a "default" ZIP+4, but there is frequently a better "precise" response if an apartment or suite identifier is provided. The precise response will typically have a different +4 and carrier route than the default response.

AzureMaps calculation distances by countries

Good afternon! How can i get a route summary for each country in the route? For example, I want to move from Ukraine to France. I get route from GetRouteDirections, the route runs through 4 countries, and i want to see - how many kilometers this route takes over each of the countries of the route
Currently the Azure Maps routing service does not provide an option to return this information, although it is something being considered as a future feature. I have seen this question in the past with other mapping platforms, and there was nothing out of the box for this in those platforms either.
That said, if you want to achieve this today you can do the following:
Get a set of country boundaries that are suitable for your users (if you have users in countries that have disputed borders, you will likely need several sets of country boundaries).
Calculate a route and use path to create a line.
Calculate the intersection of the line with each country boundary and then measure the length of the section of line that intersects.
I've done this as a proof of concept in the past using a set of GeoJSON country boundaries and the JavaScript topology suite (https://github.com/bjornharrtell/jsts). I haven't posted the code online as country borders are disputed in some regions and thus, any sample I put out there wouldn't work globally.
A global solution could be achieved by retrieving the country boundaries from Azure Maps, but you would need to retrieve the boundaries for all countries first, which would be a bit time consuming and generate a lot of transactions.

Multiple identical I2C sensors with the vl53L0x API (ST Microelectronics)

In a professional context, I have to use the vl53L0x. This sensor was released recently, along with it's API, meaning that there's no help on the internet yet :
http://www.st.com/content/st_com/en/products/embedded-software/proximity-sensors-software/stsw-img005.html
This API contains some source and headers file, that I compiled with the gcc. It works fine, despite clearly lacking comments. I flash the memory of a stm32 (NUCLEO-F401RE), which controls a vl53L0x sensor via an I2C bus. I now want to add more vl53L0x sensors on the same I2C bus, and refer to this document (if you want to read it, go directly to the bottom half of the page 5, the wiring is already done) :
http://www.st.com/content/ccc/resource/technical/document/application_note/group0/0e/0a/96/1b/82/19/4f/c2/DM00280486/files/DM00280486.pdf/jcr:content/translations/en.DM00280486.pdf
The principle, that I already applied on other sensors, is that they all start with the same address. You then have to activate one, change it's address, then activate the next one, change it's address, etc.
Unfortunately, ST Microelectronics didn't publish the list of the I2C registers, so I have to use their API to control multiple sensors. The document linked above explains how to do so. Among other things, it specifies :
In vl53L0x_platform.h API file
• Set VL53L0x_SINGLE_DEVICE_DRIVER macro to 0 so that API implementation will
be automatically adapted to a multi-device context.
I looked everywhere in the API folder, I was not able to find any reference to a VL53L0x_SINGLE_DEVICE_DRIVER macro. Setting it to 0 won't change anything, as this string is not present anywhere in the API files. Did anyone run into a similar problem ?
I'm working on the same thing. It seems that you're further ahead than I am. However, putting this in my while(1) loop seems to make both the sensors work.
ResetAndDetectSensor(0);
TimeStamp_Reset();
The guide says that in order to use all the sensors simultaneously, you need to pull the XSHUT pin high for all the sensors, reset the timestamp and then pick up the sensor which actually detects something.

How can I let users choose an OpenCL device?

I'm writing a python/C application that uses OpenCL and I'd like to let the user choose his/her favorite OpenCL device to run it on.
This should happen offline, with the preferred device stored in an ini file.
Does anybody have an idea how to do this? The device ids aren't consistent between process calls, so I could store the device names and then perform string matching?
The examples I've seen query the available platforms/devices (clGetAvailablePlatforms/Devices) and put the names in a combo box, then use the "selected index" of the combo box as indication of which device the user wants to use at runtime.
So I'd say let the user select the index of the device as it shows up in clGetAvailablePlatforms/Device. The only problem with this is that if the user is constantly chaginging graphics cards or driver versions, the order can change. Then you need to get the precise device name string (which can also change between driver version - although vendors usually don't do that).

It is possible to get the location of a user just with a call from a cellphone?

It is possible to get the location of a user just with a call from a cellphone? Are there any APIs or technologies to make this possible?
The way I am understanding your question, you aren't asking for GPS location, but more like the large area like state or country? If so, it's possible. Each number has a country and (at least in the US) an area code. You can get it from that. ICS does this by default with numbers from a different area code.
Yes, but only for emergency calls.
For privacy reasons, no-one else can do that.

Resources