コード例 #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
ファイル: models.py プロジェクト: AaLondon/aalondon
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
ファイル: QRwhat3words.py プロジェクト: ToToSpl/pythonW3W
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
ファイル: routes.py プロジェクト: andretheronsa/rescue-me
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
コード例 #19
0
		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
ファイル: test.py プロジェクト: NiamV/Distance-Calculator
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
ファイル: what3wordsTest.py プロジェクト: JakubRN/rawfiles
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
ファイル: geobot.py プロジェクト: Tissy/ATAK-geobot
#	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):