示例#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))
示例#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))
示例#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
                ]
            }
        )
示例#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]
        })