forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			243 lines
		
	
	
		
			No EOL
		
	
	
		
			7.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			243 lines
		
	
	
		
			No EOL
		
	
	
		
			7.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import {describe} from 'mocha'
 | |
| import {expect} from 'chai'
 | |
| import {ExtraFuncParams, ExtraFunctions} from "../../Logic/ExtraFunctions";
 | |
| import {OsmFeature} from "../../Models/OsmFeature";
 | |
| 
 | |
| 
 | |
| describe("OverlapFunc", () => {
 | |
| 
 | |
|     it("should give doors on the edge", () => {
 | |
|         const door: OsmFeature = {
 | |
|             "type": "Feature",
 | |
|             "id": "node/9909268725",
 | |
|             "properties": {
 | |
|                 "automatic_door": "no",
 | |
|                 "door": "hinged",
 | |
|                 "indoor": "door",
 | |
|                 "kerb:height": "0 cm",
 | |
|                 "width": "1",
 | |
|                 "id": "node/9909268725",
 | |
|             },
 | |
|             "geometry": {
 | |
|                 "type": "Point",
 | |
|                 "coordinates": [
 | |
|                     4.3494436,
 | |
|                     50.8657928
 | |
|                 ]
 | |
|             },
 | |
|         }
 | |
| 
 | |
|         const hermanTeirlinck = {
 | |
|             "type": "Feature",
 | |
|             "id": "way/444059131",
 | |
|             "properties": {
 | |
|                 "timestamp": "2022-07-27T15:15:01Z",
 | |
|                 "version": 27,
 | |
|                 "changeset": 124146283,
 | |
|                 "user": "Pieter Vander Vennet",
 | |
|                 "uid": 3818858,
 | |
|                 "addr:city": "Bruxelles - Brussel",
 | |
|                 "addr:housenumber": "88",
 | |
|                 "addr:postcode": "1000",
 | |
|                 "addr:street": "Avenue du Port - Havenlaan",
 | |
|                 "building": "government",
 | |
|                 "building:levels": "5",
 | |
|                 "name": "Herman Teirlinckgebouw",
 | |
|                 "operator": "Vlaamse overheid",
 | |
|                 "wikidata": "Q47457146",
 | |
|                 "wikipedia": "nl:Herman Teirlinckgebouw",
 | |
|                 "id": "way/444059131",
 | |
|                 "_backend": "https://www.openstreetmap.org",
 | |
|                 "_lat": "50.86622355",
 | |
|                 "_lon": "4.3501212",
 | |
|                 "_layer": "walls_and_buildings",
 | |
|                 "_length": "380.5933566256343",
 | |
|                 "_length:km": "0.4",
 | |
|                 "_now:date": "2022-07-29",
 | |
|                 "_now:datetime": "2022-07-29 14:19:25",
 | |
|                 "_loaded:date": "2022-07-29",
 | |
|                 "_loaded:datetime": "2022-07-29 14:19:25",
 | |
|                 "_last_edit:contributor": "Pieter Vander Vennet",
 | |
|                 "_last_edit:contributor:uid": 3818858,
 | |
|                 "_last_edit:changeset": 124146283,
 | |
|                 "_last_edit:timestamp": "2022-07-27T15:15:01Z",
 | |
|                 "_version_number": 27,
 | |
|                 "_geometry:type": "Polygon",
 | |
|                 "_surface": "7461.252251355437",
 | |
|                 "_surface:ha": "0.7",
 | |
|                 "_country": "be"
 | |
|             },
 | |
|             "geometry": {
 | |
|                 "type": "Polygon",
 | |
|                 "coordinates": [
 | |
|                     [
 | |
|                         [
 | |
|                             4.3493369,
 | |
|                             50.8658274
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3493393,
 | |
|                             50.8658266
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3494436,
 | |
|                             50.8657928
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3495272,
 | |
|                             50.8657658
 | |
|                         ],
 | |
|                         [
 | |
|                             4.349623,
 | |
|                             50.8657348
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3497442,
 | |
|                             50.8656956
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3498441,
 | |
|                             50.8656632
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3500768,
 | |
|                             50.8655878
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3501619,
 | |
|                             50.8656934
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3502113,
 | |
|                             50.8657551
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3502729,
 | |
|                             50.8658321
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3503063,
 | |
|                             50.8658737
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3503397,
 | |
|                             50.8659153
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3504159,
 | |
|                             50.8660101
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3504177,
 | |
|                             50.8660123
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3504354,
 | |
|                             50.8660345
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3505348,
 | |
|                             50.8661584
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3504935,
 | |
|                             50.866172
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3506286,
 | |
|                             50.8663405
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3506701,
 | |
|                             50.8663271
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3508563,
 | |
|                             50.8665592
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3509055,
 | |
|                             50.8666206
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3506278,
 | |
|                             50.8667104
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3504502,
 | |
|                             50.8667675
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3503132,
 | |
|                             50.8668115
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3502162,
 | |
|                             50.8668427
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3501645,
 | |
|                             50.8668593
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3499296,
 | |
|                             50.8665664
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3498821,
 | |
|                             50.8665073
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3498383,
 | |
|                             50.8664527
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3498126,
 | |
|                             50.8664207
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3497459,
 | |
|                             50.8663376
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3497227,
 | |
|                             50.8663086
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3496517,
 | |
|                             50.8662201
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3495158,
 | |
|                             50.8660507
 | |
|                         ],
 | |
|                         [
 | |
|                             4.3493369,
 | |
|                             50.8658274
 | |
|                         ]
 | |
|                     ]
 | |
|                 ]
 | |
|             },
 | |
|             "bbox": {
 | |
|                 "maxLat": 50.8668593,
 | |
|                 "maxLon": 4.3509055,
 | |
|                 "minLat": 50.8655878,
 | |
|                 "minLon": 4.3493369
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         const params: ExtraFuncParams = {
 | |
|             getFeatureById: id => undefined,
 | |
|             getFeaturesWithin: () => [[door]],
 | |
|             memberships: undefined
 | |
|         }
 | |
| 
 | |
| 
 | |
|         ExtraFunctions.FullPatchFeature(params, hermanTeirlinck)
 | |
|         const overlap = (<any>hermanTeirlinck).overlapWith("*")
 | |
|         console.log(JSON.stringify(overlap))
 | |
|         expect(overlap[0].feat == door).true
 | |
| 
 | |
|     })
 | |
| 
 | |
| }) |