def testInvalidKey(): badkey = 'BADKEY' geocoder = what3words.Geocoder(badkey) result = geocoder.convert_to_coordinates(addr) assert result['error']['code'] == 'InvalidKey' assert result['error'][ 'message'] == 'Authentication failed; invalid API key'
def testForwardGeocode(): geocoder = what3words.Geocoder(api_key) result = geocoder.forward(addr) assert result['language'] == u'en' assert result['words'] == u'daring.lion.race' assert result['geometry']['lat'] == lat assert result['geometry']['lng'] == lng
def ByWhat3Words(): form = What3WordsForm(request.form) if request.method == 'POST' and form.validate(): geocoder = what3words.Geocoder("R4IPMCP6") try: data1 = geocoder.convert_to_coordinates(form.W3WAddress1.data) data2 = geocoder.convert_to_coordinates(form.W3WAddress2.data) lat1 = float(data1['coordinates']['lat']) lng1 = float(data1['coordinates']['lng']) lat2 = float(data2['coordinates']['lat']) lng2 = float(data2['coordinates']['lng']) dis = str(round(distance(lat1, lng1, lat2, lng2),2)) appID = "QV50Cg9nKusKIxU0xuxn" appCode = "MtWxs2XaYo4z_X8jc1n_9Q" imageurl = "https://image.maps.api.here.com/mia/1.6/route?r0=" + str(lat1) + "%2C" + str(lng1) + "%2C" + str(lat2) + "%2C" + str(lng2) + "&m0=" + str(lat1) + "%2C" + str(lng1) + "%2C" + str(lat2) + "%2C" + str(lng2) + "&lc0=dc85ff&sc0=000000&lw0=6&w=500&app_id=" + appID + "&app_code=" + appCode return render_template('ByWhat3Words.html', form=form, dis = dis, url = imageurl) except: traceback.print_exc() return render_template('ByWhat3Words.html', form=form, dis = "Error - please try again") else: return render_template('ByWhat3Words.html', form=form, dis = "") return render_template('ByWhat3Words.html', form=form)
def testConvertTo3wa(): geocoder = what3words.Geocoder(api_key) result = geocoder.convert_to_3wa(what3words.Coordinates(lat, lng)) assert result['language'] == 'en' assert result['words'] == 'daring.lion.race' assert result['coordinates']['lat'] == lat assert result['coordinates']['lng'] == lng
def find_coordinates(address): try: w3w = what3words.Geocoder(api_key) res = w3w.forward(addr=address) return res['geometry'] except: return None
def reverse_geocode(lat, long): try: w3w = what3words.Geocoder(api_key) res = w3w.reverse(lat=lat, lng=long) return res['words'] except: return None
def testReverseGeocode(): geocoder = what3words.Geocoder(api_key) result = geocoder.reverse(lat, lng) assert result['language'] == u'en' assert result['words'] == u'daring.lion.race' assert result['geometry']['lat'] == lat assert result['geometry']['lng'] == lng
def get_longitude_latitude(what_three_words): lat, lng = None, None geocoder = what3words.Geocoder(WHAT_THREE_WORDS_API_KEY) res = geocoder.convert_to_coordinates(what_three_words) if "coordinates" in res: lat = res["coordinates"]["lat"] lng = res["coordinates"]["lng"] return lat, lng
def testLanguages(): geocoder = what3words.Geocoder(api_key) result = geocoder.available_languages() assert result['languages'] is not None if english in result['languages']: assert True else: assert False
def w3wReturnLngLat(w3wText): geocoder = what3words.Geocoder(API_KEY) res = geocoder.autosuggest_ml(w3wText) res = json.dumps(res) loadedRes = json.loads(res) for x in loadedRes['suggestions']: if x['country'] == country: return x['geometry']['lng'], x['geometry']['lat']
def testGrid(): geocoder = what3words.Geocoder(api_key) sw = what3words.Coordinates(52.208867, 0.117540) ne = what3words.Coordinates(52.207988, 0.116126) bb = what3words.BoundingBox(sw, ne) result = geocoder.grid_section(bb) assert result['lines'] is not None
def Get_w3w(df): W3W_API_KEY = 'YOUR_API_KEY_GOES_HERE' g = what3words.Geocoder(W3W_API_KEY) for i in range(0, len(df)): res = g.convert_to_3wa(what3words.Coordinates(df.iloc[i]['lat'], df.iloc[i]['lon'])) df.set_value(i, 'what3words', res['words']) return df
def locate(name): data = False static_data = { "GOOGLE_API": app.config["GOOGLE_API"], "W3W_API": app.config["W3W_API"], "url_valid": True } # Ensure track ID has been issued exists = db.session.query( Track.name).filter_by(name=name).scalar() is not None if not exists: static_data["url_valid"] = False else: # Ensure track ID has not expired yet track_time = db.session.query( Track.create_time).filter_by(name=name).scalar() track_time_db = date_parser.parse(track_time.strftime('%c')) current_time = dt.utcnow() difference = current_time - track_time_db if difference.days >= 3: static_data["url_valid"] = False # Recieve track data from client if request.method == "POST": # Parse position object return data = request.get_json(force=True) data["timeStamp"] = date_parser.parse( data["timeStamp"].split("GMT")[0]) # Insert extra info about request data["ip"] = request.remote_addr data["track_id"] = db.session.query(Track.id).filter_by(name=name) geocoder = what3words.Geocoder(app.config["W3W_API"]) w3w = geocoder.convert_to_3wa( what3words.Coordinates(data["latitude"], data["longitude"])) data["w3w"] = w3w["words"] # Add message to user location_insert = Location(**data) try: db.session.add(location_insert) db.session.commit() except Exception as e: print(e) sys.stdout.flush() return render_template("locate.html", title='Locate', static_data=static_data, data=data) return render_template("locate.html", title='Locate', static_data=static_data, data=data)
def Get_LatLon(df): W3W_API_KEY = 'YOUR_API_KEY_GOES_HERE' g = what3words.Geocoder(W3W_API_KEY) for i in range(0, len(df)): # assumes you have all of the words in one column (e.g., 'subsides.oilman.wildcard') # if you have them in separate columns, you'll need to concatenate with period between # prior to converting to coordinates res = g.convert_to_coordinates(df.iloc[i]['w3w']) df.set_value(i, 'Latitude', res['coordinates']['lat']) df.set_value(i, 'Longitude', res['coordinates']['lng']) return df
def portam(self, point): self.point = QgsPointXY(point) # self.point = self.toMapCoordinates(point) xMon = self.point.x() #??? yMon = self.point.y() #??? self.transformacio = QgsCoordinateTransform( QgsCoordinateReferenceSystem("EPSG:25831"), QgsCoordinateReferenceSystem("EPSG:4326"), QgsProject.instance()) self.puntTransformat = self.transformacio.transform(self.point) self.parent.pucMoure = False # streetView = 'https://www.google.com/maps/@{},{},3a,75y,0h,75t'.format(self.puntTransformat.y(),puntTransformat.x()) # streetView = 'https://www.google.com/maps/@{},{},2a/data=!3m1!1e3'.format(puntTransformat.y(),puntTransformat.x()) self.parent.urlStreetView = "https://maps.google.com/maps?layer=c&cbll={},{}".format( self.puntTransformat.y(), self.puntTransformat.x()) self.parent.urlGoogleMaps = 'https://www.google.com/maps/@{},{},2a/data=!3m1!1e3'.format( self.puntTransformat.y(), self.puntTransformat.x()) self.parent.urlStreetMaps = "https://www.openstreetmap.org/#map=16/{}/{}".format( self.puntTransformat.y(), self.puntTransformat.x()) self.parent.qbrowser.browser.setUrl(QUrl(self.parent.urlStreetView)) self.parent.qbrowser.show() self.parent.show() try: import what3words geocoder = what3words.Geocoder("HTD7LNB9") palabras = geocoder.convert_to_3wa(what3words.Coordinates( self.puntTransformat.y(), self.puntTransformat.x()), language='es') # coordenadas = geocoder.convert_to_coordinates('agudo.lista.caja') print(palabras['words']) except: print('No va 3 words') # self.parent.boto.move(40, 5) # self.m.setCenter(QgsPointXY(event.x()-30,event.y()-30)) self.canvas.scene().removeItem(self.parent.m) self.parent.m = QgsVertexMarker(self.canvas) self.parent.m.setCenter(QgsPointXY(self.point.x(), self.point.y())) self.parent.m.setColor(QColor(255, 0, 0)) self.parent.m.setIconSize(15) self.parent.m.setIconType( QgsVertexMarker.ICON_BOX) # or ICON_CROSS, ICON_X self.parent.m.setPenWidth(3) self.parent.m.show() self.moureBoto = False
def main(w1,w2,w3,map,coords,where): """ A tool to quickly get the location of a what3words address """ key = file_get_contents("key.config") geocoder = what3words.Geocoder(key) res = geocoder.convert_to_coordinates(f"{w1}.{w2}.{w3}") if 'error' in res: print(res['error']['message']) sys.exit() if coords: print(f"{res['coordinates']['lat']},{res['coordinates']['lng']}") elif map: url = f"https://www.google.com/maps/search/?api=1&query={res['coordinates']['lat']}%2C{res['coordinates']['lng']}" webbrowser.open(url) elif where: print(f"{res['nearestPlace']},{res['country']}") else: url = f"https://www.google.com/maps/search/?api=1&query={res['coordinates']['lat']}%2C{res['coordinates']['lng']}" webbrowser.open(url)
from autofixture import AutoFixture #from mimesis import Address, Person from faker import Faker import random import requests import what3words from os import environ import requests import shortuuid import uuid from django.core import files import tempfile import re import pdb w3w = what3words.Geocoder('R35K949K') fake = Faker() #seeder = Seed.seeder() data = AddressData.objects.all().values() N = 20 #address_data = [i for i in data] #dist = AddressData.objects.all().values_list('district').distinct() #districts = [i[0] for i in dist] #wrd = AddressData.objects.all().values_list('ward').distinct() #wards = [i[0] for i in wrd] #3vill = AddressData.objects.all().values_list('village').distinct()
def testAutoSuggest(): geocoder = what3words.Geocoder(api_key) result = geocoder.autosuggest(suggest) assert result['suggestions'] is not None
postgresUser = os.getenv('POSTGRES_USER', connectString.username) postgresPassword = os.getenv('POSTGRES_PASS', connectString.password) postgresDatabase = os.getenv('POSTGRES_DB', connectString.path[1:]) # Now we're ready, so start the server # Instantiate the logger log = logging.getLogger('log') console = logging.StreamHandler() log.setLevel(logging.INFO) log.addHandler(console) if os.getenv('LOGENTRIES_TOKEN') == '': log.addHandler(LogentriesHandler(os.getenv('LOGENTRIES_TOKEN', ''))) if not os.getenv('W3W_TOKEN', "") == "": w3w = what3words.Geocoder(os.getenv('W3W_TOKEN')) # Instantiate a connection try: if os.getenv('DATABASE_URL', '') != '': log.info("Connecting to postgreSQL: {}".format(os.getenv('DATABASE_URL'))) conn = psycopg2.connect( database=postgresDatabase, user=postgresUser, password=postgresPassword, host=postgresHost, port=postgresPort ) else: log.error("DATABASE_URL is not set, or blank. Please set and restart the application") exit()
def testInvalidKey(): badkey = 'BADKEY' geocoder = what3words.Geocoder(badkey) result = geocoder.forward(addr) assert result['code'] == 2 assert result['message'] == u'Authentication failed; invalid API key'
import what3words geocoder = what3words.Geocoder("R4IPMCP6") res = geocoder.convert_to_coordinates('prom.caee.pump') print(res) res2 = geocoder.autosuggest('prom.cane.pump') print(res2)
import what3words from os import environ api_key = 'FRAZIWN6' w3w = what3words.Geocoder(api_key) res = w3w.convert_to_coordinates('balanced.riches.soup') print(res)
import what3words from selenium import webdriver from selenium.webdriver.chrome.options import Options import folium from folium.plugins import MarkerCluster import pandas as pd from pprint import pprint import io from PIL import Image name = 'error.error.error' geocoder = what3words.Geocoder("8ALQVNE8") res = geocoder.convert_to_coordinates(name) pprint(res) startcords = [res['coordinates']['lat'], res['coordinates']['lng']] # Create the map m = folium.Map(location=startcords, zoom_start=13, tiles='Stamen Toner') folium.Marker(startcords, popup=name).add_to(m) m # Display the map img_data = m._to_png(5) img = Image.open(io.BytesIO(img_data)) img.save('image.png')
def testStandardBlendML(): geocoder = what3words.Geocoder(api_key) result = geocoder.standardblend_ml(suggest) assert result['blends'] is not None
def testGrid(): geocoder = what3words.Geocoder(api_key) result = geocoder.grid("52.208867,0.117540,52.207988,0.116126") assert result['lines'] is not None
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. # *** CHANGE ME *** # ADVANCED TAK_SERVER_ADDRESS = "3.10.120.210" # The TAK server's hostname or IP address TAK_SERVER_PORT = 8087 # The TCP CoT port used by the server for XML W3W_API_KEY = "H879MIU9" # YOUR API KEY debug = 0 geocoder = what3words.Geocoder(W3W_API_KEY) # DEBUG SWITCH if len(sys.argv) > 1: if sys.argv[1] == "-d": debug = 1 # w3w = What 3 words API # os = WGS84 to OSGB conversion # ADD YOUR AWESOME GEO CONVERSION HERE: commands = ["w3w", "os"] helpers = ["WGS84 to What-3-words", "WGS84 to OSGB"] def parseCoT(xml):