Exemplo n.º 1
0
def compute_occlusions(box):
    SW, NE = box
    points = list(POI.objects(at__geo_within_box=(SW, NE)))
    print("Starting", SW, NE, len(points))
    for i, p1 in enumerate(points):
        for j, p2 in enumerate(points[i+1:]):
            coords1, coords2 = p1.at['coordinates'], p2.at['coordinates']
            dist = math.sqrt(abs(coords1[0]-coords2[0])**2 + abs(coords1[1]-coords2[1])**2)

            occluded_point = p1 if p1.rank < p2.rank else p2
            for zoom, spacing in enumerate(zoomspacing):
                if dist < spacing:
                    continue
                break
            occluded_point.min_zoom = max(occluded_point.min_zoom, zoom)
        p1.save()
    print("Finished", SW, NE, len(points))
Exemplo n.º 2
0
def compute_occlusions(box):
    SW, NE = box
    points = list(POI.objects(at__geo_within_box=(SW, NE)))
    print("Starting", SW, NE, len(points))
    for i, p1 in enumerate(points):
        for j, p2 in enumerate(points[i + 1:]):
            coords1, coords2 = p1.at['coordinates'], p2.at['coordinates']
            dist = math.sqrt(
                abs(coords1[0] - coords2[0])**2 +
                abs(coords1[1] - coords2[1])**2)

            occluded_point = p1 if p1.rank < p2.rank else p2
            for zoom, spacing in enumerate(zoomspacing):
                if dist < spacing:
                    continue
                break
            occluded_point.min_zoom = max(occluded_point.min_zoom, zoom)
        p1.save()
    print("Finished", SW, NE, len(points))
Exemplo n.º 3
0
    def getPoints():
        print(request.json)
        zoom = int(request.json.get("zoom", 1))
        seen = request.json.get("seen", [])
        ensure(seen).is_a_list_of(str)
        points = POI.objects(
            at__geo_within_box=(request.json["SW"], request.json["NE"]), min_zoom=zoom, name__nin=request.json["seen"]
        )

        return jsonify(
            {
                "points": [
                    {
                        "name": p.name,
                        "lat": p.at["coordinates"][1],
                        "lng": p.at["coordinates"][0],
                        "abstract": lz4.decompress(p.abstract).decode() if p.abstract else "",
                        "img": p.img,
                    }
                    for p in points
                ]
            }
        )
Exemplo n.º 4
0
    def getPoints():
        print(request.json)
        zoom = int(request.json.get('zoom', 1))
        seen = request.json.get('seen', [])
        ensure(seen).is_a_list_of(str)
        points = POI.objects(at__geo_within_box=(request.json['SW'],
                                                 request.json['NE']),
                             min_zoom=zoom,
                             name__nin=request.json['seen'])

        return jsonify({
            "points": [{
                "name":
                p.name,
                "lat":
                p.at['coordinates'][1],
                "lng":
                p.at['coordinates'][0],
                "abstract":
                lz4.decompress(p.abstract).decode() if p.abstract else '',
                "img":
                p.img,
            } for p in points]
        })
Exemplo n.º 5
0
#!/usr/bin/env python3

import os, sys, logging, urllib, time, string, json, argparse, collections, datetime, re, bz2
import lz4

logging.basicConfig(level=logging.DEBUG)

sys.path.append(os.path.join(os.path.dirname(__file__), "lib", "python"))
from carta import (logger, POI)

from mongoengine import *

connect('carta')
POI.drop_collection()

#POI(name='si02', at=[151.0, -34.0]).save()

from xml.etree import cElementTree as ElementTree
#from xml.etree import ElementTree

# See http://en.wikipedia.org/wiki/Template:Coord
#ElementTree.register_namespace('http://www.mediawiki.org/xml/export-0.8/', '')

input_filename = "data/enwiki-latest-pages-articles.xml.bz2"

coord_re = re.compile("{{coord.+?}}")
#{{coord|28|N|2|E|scale:10000000_type:country_region:DZ|format=dms|display=title}}

title, text, coord = None, None, None

def normalize_coords(lat_d, long_d, lat_m=None, lat_s=None, lat_NS=None, long_m=None, long_s=None, long_EW=None):