Пример #1
0
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'
Пример #2
0
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
Пример #3
0
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)
Пример #4
0
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
Пример #5
0
def find_coordinates(address):
    try:
        w3w = what3words.Geocoder(api_key)
        res = w3w.forward(addr=address)
        return res['geometry']
    except:
        return None
Пример #6
0
def reverse_geocode(lat, long):
    try:
        w3w = what3words.Geocoder(api_key)
        res = w3w.reverse(lat=lat, lng=long)
        return res['words']
    except:
        return None
Пример #7
0
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
Пример #8
0
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
Пример #9
0
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
Пример #10
0
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']
Пример #11
0
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
Пример #12
0
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        
Пример #13
0
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)
Пример #14
0
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
Пример #15
0
    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
Пример #16
0
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)
Пример #17
0
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()
Пример #18
0
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()
Пример #20
0
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'
Пример #21
0
import what3words

geocoder = what3words.Geocoder("R4IPMCP6")

res = geocoder.convert_to_coordinates('prom.caee.pump')
print(res)

res2 = geocoder.autosuggest('prom.cane.pump')
print(res2)
Пример #22
0
import what3words
from os import environ
api_key = 'FRAZIWN6'
w3w = what3words.Geocoder(api_key)
res = w3w.convert_to_coordinates('balanced.riches.soup')
print(res)
Пример #23
0
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')
Пример #24
0
def testStandardBlendML():
    geocoder = what3words.Geocoder(api_key)
    result = geocoder.standardblend_ml(suggest)

    assert result['blends'] is not None
Пример #25
0
def testGrid():
    geocoder = what3words.Geocoder(api_key)
    result = geocoder.grid("52.208867,0.117540,52.207988,0.116126")

    assert result['lines'] is not None
Пример #26
0
#	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):