diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 6d69f21..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -lib/**/* -.project -.settings diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index 9a2a3bb..0000000 --- a/AUTHORS +++ /dev/null @@ -1,11 +0,0 @@ -MapQuery AUTHORS -================ - -A number of people have contributed directly to MapQuery by writing -documentation or developing software. Some of these people are: - - * Volker Mische - * Anne Blankert - * Steven Ottens - -For a list of other credits see the `THANKS` file. diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 43357a7..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -This software is licensed under the MIT License. - -Copyright (c) 2011 MapQuery Contributors. See AUTHORS for full list. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -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. diff --git a/README.mdown b/README.mdown deleted file mode 100644 index 4503b91..0000000 --- a/README.mdown +++ /dev/null @@ -1,59 +0,0 @@ -MapQuery -========= - -More information is available at http://github.com/mapquery - -The current documentation are the examples in the demo directory. Feel free to write something up for this README :) - -In order to get the demos work, you need to get all dependencies. Run the getdeps.sh in the lib directory. Take care, that the getdeps.sh have enough permissions that it can run. - -Known issues ------------- - -### Demos don't work - -1. Have you got the dependencies (see above) -2. If you use Chrome/Chromium, you either need to run it behind a web server (so that the URLs are http:// and not file://) or start it with the `-allow-file-access-from-files` flag. See http://code.google.com/p/chromium/issues/detail?id=40787 for more information. - - -Development Guidlines ---------------------- - -If you want to create a new widget for MapQuery, here are some notes: - - - Don't indent after the (function($) { })(jQuery) closure: - -```javascript -(function($) { -$.widget("mapQuery.mqLayerControl", { - _create: ... -}); -})(jQuery); -``` - - - Name your widget in the constructor mapQuery.mq: - - `$.widget("mapQuery.mqLayerControl", {...` - - - Use jQuery-tmpl for templating - - - Use jQuery UI classes for styling - - - If you need `this` in an inner function, name the corresponding variable `self` - - - Indentation is 4 spaces - - - For CSS clases use a dash (-) and not an underscore (_) to separate parts - - -Data ----- - -The bundled tiles were generated from the Natural Earth dataset. -http://www.naturalearthdata.com/downloads/10m-raster-data/10m-natural-earth-1/ - - -License -------- - -MapQuery is licensed under the MIT License. diff --git a/THANKS b/THANKS deleted file mode 100644 index ca50af4..0000000 --- a/THANKS +++ /dev/null @@ -1,13 +0,0 @@ -MapQuery THANKS -=============== - -A number of people have contributed to MapQuery by reporting problems, -suggesting improvements or submitting changes. Some of these people are: - - * Christoph Baudson - * Christian Wygoda - * Drew Wells - * Christian Kaatz - * Justin Penka - -For a list of authors see the `AUTHORS` file. diff --git a/demo/basic.html b/demo/basic.html deleted file mode 100644 index e9efb1f..0000000 --- a/demo/basic.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - MapQuery basic example - - - - - - - -
- - diff --git a/demo/bing.html b/demo/bing.html deleted file mode 100644 index 2f8a71b..0000000 --- a/demo/bing.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - MapQuery bing maps example - - - - - - - - -
- - diff --git a/demo/data/poly.json b/demo/data/poly.json deleted file mode 100644 index 708ef1c..0000000 --- a/demo/data/poly.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "FeatureCollection", - "features": [{ - "type": "Feature", - "geometry": { - "type": "Polygon", - "coordinates": [[ - [20.0, 30.0], [40.0, 20.0], - [50.0, 70.0], [10.0, 60.0], [20.0, 30.0] - ]] - }, - "properties": { - "id": "poly1-1", - "amount": 30, - "weight": 32.56, - "isNice": true - } - },{ - "type": "Feature", - "geometry": { - "type": "Polygon", - "coordinates": [[ - [70.0, 60.0], [90.0, 50.0], - [100.0, 80.0], [60.0, 80.0], [70.0, 60.0] - ]] - }, - "properties": { - "id": "poly1-2", - "amount": 93, - "weight": 759.20, - "isNice": true - } - }] -} diff --git a/demo/data/poly2.json b/demo/data/poly2.json deleted file mode 100644 index 72059b8..0000000 --- a/demo/data/poly2.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "type": "FeatureCollection", - "features": [{ - "type": "Feature", - "geometry": { - "type": "Polygon", - "coordinates": [[ - [20.0, 0.0], [40.0, 10.0], - [50.0, -25.0], [10.0, -30.0], [20.0, 0.0] - ]] - }, - "properties": { - "id": "poly2-1", - "amount": 579, - "weight": 5687.324, - "isNice": false, - "value": "something" - } - },{ - "type": "Feature", - "geometry": { - "type": "Polygon", - "coordinates": [[ - [70.0, 20.0], [90.0, 10.0], - [100.0, -40.0], [50.0, -20.0], [70.0, 20.0] - ]] - }, - "properties": { - "id": "poly2-2", - "amount": 43, - "weight": 37.3958, - "isNice": true, - "prop": "none" - } - }] -} - diff --git a/demo/data/reservate.json b/demo/data/reservate.json deleted file mode 100644 index 4ec868c..0000000 --- a/demo/data/reservate.json +++ /dev/null @@ -1,28365 +0,0 @@ -{ - "type":"FeatureCollection", - "features":[ - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 41.01898, - 11.20082 - ], - [ - 41.05617, - 11.20192 - ], - [ - 41.0611, - 11.17988 - ], - [ - 41.06244, - 11.16065 - ], - [ - 41.06262, - 11.1267 - ], - [ - 41.05928, - 11.09643 - ], - [ - 41.05589, - 11.07748 - ], - [ - 41.05723, - 11.05826 - ], - [ - 41.06008, - 11.03373 - ], - [ - 41.05446, - 11.01055 - ], - [ - 41.04829, - 10.99262 - ], - [ - 41.03624, - 10.97242 - ], - [ - 41.02284, - 10.94706 - ], - [ - 41.00727, - 10.91834 - ], - [ - 40.993, - 10.8939 - ], - [ - 40.98552, - 10.85863 - ], - [ - 40.98615, - 10.84205 - ], - [ - 40.45699, - 10.99859 - ], - [ - 40.96817, - 11.23485 - ], - [ - 40.99177, - 11.23176 - ], - [ - 41.01464, - 11.2313 - ], - [ - 41.01898, - 11.20082 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf00516f", - "_rev":"2-f85fd93d692df4c3290ecd3e8e87ea3e", - "type":"Feature", - "properties":{ - "GISNAME":"Yangudi Rassa", - "Species":"African Wild Ass, Soemmering Gazelle" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 37.61373, - 14.025971 - ], - [ - 37.60638, - 14.040171 - ], - [ - 37.599905, - 14.051835 - ], - [ - 37.593514, - 14.064617 - ], - [ - 37.59188, - 14.067886 - ], - [ - 37.589773, - 14.072516 - ], - [ - 37.58753, - 14.077692 - ], - [ - 37.58521, - 14.0825 - ], - [ - 37.583392, - 14.087242 - ], - [ - 37.56971, - 14.09438 - ], - [ - 37.565869, - 14.097453 - ], - [ - 37.5613, - 14.101108 - ], - [ - 37.554807, - 14.105224 - ], - [ - 37.549048, - 14.107765 - ], - [ - 37.537587, - 14.112821 - ], - [ - 37.534041, - 14.12118 - ], - [ - 37.529259, - 14.132451 - ], - [ - 37.527372, - 14.155566 - ], - [ - 37.52688, - 14.1616 - ], - [ - 37.77121, - 13.85875 - ], - [ - 37.77028, - 13.85899 - ], - [ - 37.7682, - 13.86102 - ], - [ - 37.76564, - 13.8635 - ], - [ - 37.76147, - 13.8678 - ], - [ - 37.75708, - 13.87207 - ], - [ - 37.75268, - 13.87615 - ], - [ - 37.74851, - 13.87864 - ], - [ - 37.74295, - 13.87999 - ], - [ - 37.73971, - 13.88157 - ], - [ - 37.73925, - 13.88632 - ], - [ - 37.73717, - 13.89083 - ], - [ - 37.733, - 13.8924 - ], - [ - 37.73069, - 13.8976 - ], - [ - 37.72559, - 13.8994 - ], - [ - 37.7198, - 13.89897 - ], - [ - 37.71586, - 13.8967 - ], - [ - 37.71169, - 13.89422 - ], - [ - 37.70984, - 13.89265 - ], - [ - 37.70962, - 13.89243 - ], - [ - 37.7022, - 13.88882 - ], - [ - 37.69825, - 13.88814 - ], - [ - 37.69455, - 13.89017 - ], - [ - 37.6913, - 13.89422 - ], - [ - 37.6876, - 13.89965 - ], - [ - 37.68436, - 13.90394 - ], - [ - 37.6802, - 13.90644 - ], - [ - 37.6744, - 13.90914 - ], - [ - 37.67, - 13.91206 - ], - [ - 37.66722, - 13.91592 - ], - [ - 37.66467, - 13.9211 - ], - [ - 37.66259, - 13.92585 - ], - [ - 37.66074, - 13.93081 - ], - [ - 37.65888, - 13.93623 - ], - [ - 37.65703, - 13.94254 - ], - [ - 37.65518, - 13.94752 - ], - [ - 37.65333, - 13.95068 - ], - [ - 37.65009, - 13.95405 - ], - [ - 37.64476, - 13.95428 - ], - [ - 37.64128, - 13.95362 - ], - [ - 37.63781, - 13.95226 - ], - [ - 37.63271, - 13.9527 - ], - [ - 37.62993, - 13.95498 - ], - [ - 37.629, - 13.9579 - ], - [ - 37.62923, - 13.96151 - ], - [ - 37.629, - 13.96625 - ], - [ - 37.62854, - 13.97123 - ], - [ - 37.62807, - 13.97665 - ], - [ - 37.62738, - 13.98094 - ], - [ - 37.62622, - 13.98386 - ], - [ - 37.62507, - 13.98678 - ], - [ - 37.62368, - 13.98996 - ], - [ - 37.62252, - 13.99289 - ], - [ - 37.62136, - 13.99673 - ], - [ - 37.61996, - 13.99898 - ], - [ - 37.61373, - 14.025971 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf005c12", - "_rev":"2-2e18293d04fcd28b0008dcd411731033", - "type":"Feature", - "properties":{ - "GISNAME":"Shire", - "Species":"Red-fronted Gazelle, Greater Kudu, Elephant, Roan Antelope, Oribi, Crocodile" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 40.60786, - 10.07463 - ], - [ - 40.60793, - 10.0747 - ], - [ - 40.60911, - 10.07898 - ], - [ - 40.61007, - 10.08281 - ], - [ - 40.61216, - 10.08595 - ], - [ - 40.61083, - 10.08982 - ], - [ - 40.6086, - 10.09454 - ], - [ - 40.60659, - 10.09909 - ], - [ - 40.60316, - 10.09935 - ], - [ - 40.60247, - 10.09756 - ], - [ - 40.60153, - 10.09554 - ], - [ - 40.59971, - 10.09601 - ], - [ - 40.59747, - 10.10033 - ], - [ - 40.59573, - 10.10736 - ], - [ - 40.59373, - 10.11233 - ], - [ - 40.59126, - 10.11551 - ], - [ - 40.58831, - 10.11849 - ], - [ - 40.58536, - 10.12011 - ], - [ - 40.58082, - 10.12173 - ], - [ - 40.57695, - 10.12356 - ], - [ - 40.57172, - 10.12678 - ], - [ - 40.56717, - 10.12774 - ], - [ - 40.5626, - 10.12801 - ], - [ - 40.55873, - 10.12896 - ], - [ - 40.55648, - 10.13215 - ], - [ - 40.5563, - 10.13645 - ], - [ - 40.55727, - 10.14206 - ], - [ - 40.55915, - 10.14724 - ], - [ - 40.56126, - 10.15152 - ], - [ - 40.56199, - 10.15558 - ], - [ - 40.55907, - 10.16012 - ], - [ - 40.55592, - 10.164 - ], - [ - 40.55252, - 10.16698 - ], - [ - 40.54935, - 10.17015 - ], - [ - 40.54687, - 10.17245 - ], - [ - 40.54301, - 10.17429 - ], - [ - 40.5396, - 10.17682 - ], - [ - 40.53875, - 10.18179 - ], - [ - 40.53859, - 10.1872 - ], - [ - 40.53676, - 10.1888 - ], - [ - 40.53473, - 10.19086 - ], - [ - 40.53387, - 10.1954 - ], - [ - 40.53574, - 10.19898 - ], - [ - 40.53919, - 10.20165 - ], - [ - 40.54287, - 10.20364 - ], - [ - 40.54472, - 10.20545 - ], - [ - 40.54523, - 10.20995 - ], - [ - 40.54458, - 10.21358 - ], - [ - 40.54301, - 10.21674 - ], - [ - 40.54247, - 10.229 - ], - [ - 40.53445, - 10.23233 - ], - [ - 40.5247, - 10.25047 - ], - [ - 40.52322, - 10.26543 - ], - [ - 40.51962, - 10.2884 - ], - [ - 40.52531, - 10.30899 - ], - [ - 40.52874, - 10.33584 - ], - [ - 40.53241, - 10.3653 - ], - [ - 40.5341, - 10.38354 - ], - [ - 40.52799, - 10.41019 - ], - [ - 40.51494, - 10.43382 - ], - [ - 40.49977, - 10.45497 - ], - [ - 40.48443, - 10.4744 - ], - [ - 40.47193, - 10.49362 - ], - [ - 40.46755, - 10.50792 - ], - [ - 40.48206, - 10.54101 - ], - [ - 40.49403, - 10.56727 - ], - [ - 40.49606, - 10.58898 - ], - [ - 40.49177, - 10.60414 - ], - [ - 40.4848, - 10.62124 - ], - [ - 40.46658, - 10.65051 - ], - [ - 40.46846, - 10.67048 - ], - [ - 40.46194, - 10.68231 - ], - [ - 40.45189, - 10.69702 - ], - [ - 40.43916, - 10.71366 - ], - [ - 40.46308, - 10.71458 - ], - [ - 40.48984, - 10.71531 - ], - [ - 40.53419, - 10.72036 - ], - [ - 40.56029, - 10.71284 - ], - [ - 40.59815, - 10.70993 - ], - [ - 40.63614, - 10.70875 - ], - [ - 40.68543, - 10.7061 - ], - [ - 40.73542, - 10.69989 - ], - [ - 40.78782, - 10.70054 - ], - [ - 40.82479, - 10.69853 - ], - [ - 40.86249, - 10.70606 - ], - [ - 40.88894, - 10.67877 - ], - [ - 40.91772, - 10.6848 - ], - [ - 40.92071, - 10.64621 - ], - [ - 40.92839, - 10.61687 - ], - [ - 40.92657, - 10.57775 - ], - [ - 40.91825, - 10.53036 - ], - [ - 40.91399, - 10.4853 - ], - [ - 40.91558, - 10.44158 - ], - [ - 40.91359, - 10.41032 - ], - [ - 40.90491, - 10.37865 - ], - [ - 40.90018, - 10.34845 - ], - [ - 40.89899, - 10.31539 - ], - [ - 40.8957, - 10.29032 - ], - [ - 40.88896, - 10.27033 - ], - [ - 40.89663, - 10.23935 - ], - [ - 40.89695, - 10.21446 - ], - [ - 40.89939, - 10.20205 - ], - [ - 40.89497, - 10.19068 - ], - [ - 40.89503, - 10.18615 - ], - [ - 40.89293, - 10.17255 - ], - [ - 40.88865, - 10.14987 - ], - [ - 40.89241, - 10.12389 - ], - [ - 40.89502, - 10.09902 - ], - [ - 40.90206, - 10.08439 - ], - [ - 40.90218, - 10.07534 - ], - [ - 40.89535, - 10.07299 - ], - [ - 40.81658, - 10.07207 - ], - [ - 40.78239, - 10.06714 - ], - [ - 40.73446, - 10.06545 - ], - [ - 40.68535, - 10.066 - ], - [ - 40.64533, - 10.07006 - ], - [ - 40.60786, - 10.07463 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf006686", - "_rev":"1-0c70c38d38e63c6248a5dd93f9607827", - "type":"Feature", - "properties":{ - "GISNAME":"Gewane", - "Species":"Soemmering's Gazelle, Greater and Lesser Kudus, Ostrich" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 40.79055, - 11.2033 - ], - [ - 40.78249, - 11.23039 - ], - [ - 40.76379, - 11.2344 - ], - [ - 40.74328, - 11.2298 - ], - [ - 40.70683, - 11.22814 - ], - [ - 40.67813, - 11.22764 - ], - [ - 40.64409, - 11.22141 - ], - [ - 40.61351, - 11.21143 - ], - [ - 40.58166, - 11.18842 - ], - [ - 40.55825, - 11.17353 - ], - [ - 40.51786, - 11.16075 - ], - [ - 40.50381, - 11.16353 - ], - [ - 40.50232, - 11.17762 - ], - [ - 40.50138, - 11.21705 - ], - [ - 40.50372, - 11.26061 - ], - [ - 40.49348, - 11.31209 - ], - [ - 40.49346, - 11.3424 - ], - [ - 40.49344, - 11.36021 - ], - [ - 40.49961, - 11.41311 - ], - [ - 40.51364, - 11.46805 - ], - [ - 40.52597, - 11.50561 - ], - [ - 40.5347, - 11.53557 - ], - [ - 40.54299, - 11.5708 - ], - [ - 40.56382, - 11.61646 - ], - [ - 40.59381, - 11.65791 - ], - [ - 40.62131, - 11.69342 - ], - [ - 40.64474, - 11.71699 - ], - [ - 40.6631, - 11.74705 - ], - [ - 40.69218, - 11.77892 - ], - [ - 40.71228, - 11.80709 - ], - [ - 40.73432, - 11.84471 - ], - [ - 40.75126, - 11.87923 - ], - [ - 40.76884, - 11.91982 - ], - [ - 40.78605, - 11.94731 - ], - [ - 40.81755, - 11.98329 - ], - [ - 40.85256, - 12.00676 - ], - [ - 40.87907, - 12.02215 - ], - [ - 40.91052, - 12.03888 - ], - [ - 40.94356, - 12.0616 - ], - [ - 40.95605, - 12.07109 - ], - [ - 40.96764, - 12.09025 - ], - [ - 40.96915, - 12.11371 - ], - [ - 40.96853, - 12.14431 - ], - [ - 40.9653, - 12.16814 - ], - [ - 40.95405, - 12.19785 - ], - [ - 40.94524, - 12.21427 - ], - [ - 40.93634, - 12.22983 - ], - [ - 40.93274, - 12.2502 - ], - [ - 40.9478, - 12.26559 - ], - [ - 40.96973, - 12.27344 - ], - [ - 40.9947, - 12.28279 - ], - [ - 41.01247, - 12.28747 - ], - [ - 41.02674, - 12.28633 - ], - [ - 41.04263, - 12.28243 - ], - [ - 41.05637, - 12.26736 - ], - [ - 41.07851, - 12.24114 - ], - [ - 41.09827, - 12.21949 - ], - [ - 41.12219, - 12.20099 - ], - [ - 41.16654, - 12.18522 - ], - [ - 41.20137, - 12.17021 - ], - [ - 41.22395, - 12.15707 - ], - [ - 41.24103, - 12.13738 - ], - [ - 41.25222, - 12.11644 - ], - [ - 41.2639, - 12.09109 - ], - [ - 41.28009, - 12.05406 - ], - [ - 41.29136, - 12.01568 - ], - [ - 41.30256, - 11.99474 - ], - [ - 41.31779, - 11.98481 - ], - [ - 41.34575, - 11.97736 - ], - [ - 41.36687, - 11.96871 - ], - [ - 41.39143, - 11.9563 - ], - [ - 41.41438, - 11.93791 - ], - [ - 41.4311, - 11.91481 - ], - [ - 41.45293, - 11.89479 - ], - [ - 41.47972, - 11.8674 - ], - [ - 41.50223, - 11.84472 - ], - [ - 41.52291, - 11.82306 - ], - [ - 41.54958, - 11.80353 - ], - [ - 41.57689, - 11.79006 - ], - [ - 41.6017, - 11.78026 - ], - [ - 41.63013, - 11.76843 - ], - [ - 41.64689, - 11.75492 - ], - [ - 41.65949, - 11.73826 - ], - [ - 41.66946, - 11.71486 - ], - [ - 41.66791, - 11.68195 - ], - [ - 41.66212, - 11.66327 - ], - [ - 41.65791, - 11.65055 - ], - [ - 41.65163, - 11.63627 - ], - [ - 41.64182, - 11.62486 - ], - [ - 41.62539, - 11.61398 - ], - [ - 41.6003, - 11.6029 - ], - [ - 41.57898, - 11.60022 - ], - [ - 41.55481, - 11.59777 - ], - [ - 41.53279, - 11.59775 - ], - [ - 41.49398, - 11.60165 - ], - [ - 41.46275, - 11.60496 - ], - [ - 41.43811, - 11.61646 - ], - [ - 41.41778, - 11.62328 - ], - [ - 41.38273, - 11.64517 - ], - [ - 41.35982, - 11.6548 - ], - [ - 41.33704, - 11.65658 - ], - [ - 41.32114, - 11.65085 - ], - [ - 41.30342, - 11.64613 - ], - [ - 41.28015, - 11.65229 - ], - [ - 41.26093, - 11.66076 - ], - [ - 41.24551, - 11.66893 - ], - [ - 41.21851, - 11.67626 - ], - [ - 41.20214, - 11.6845 - ], - [ - 41.17636, - 11.69436 - ], - [ - 41.15466, - 11.70651 - ], - [ - 41.13388, - 11.71858 - ], - [ - 41.11295, - 11.72893 - ], - [ - 41.09044, - 11.73331 - ], - [ - 41.07316, - 11.7329 - ], - [ - 41.05563, - 11.7299 - ], - [ - 41.04162, - 11.72401 - ], - [ - 41.02744, - 11.71638 - ], - [ - 41.02204, - 11.70109 - ], - [ - 41.03088, - 11.6847 - ], - [ - 41.04231, - 11.66549 - ], - [ - 41.0519, - 11.63771 - ], - [ - 41.06202, - 11.61512 - ], - [ - 41.07981, - 11.58323 - ], - [ - 41.0902, - 11.56323 - ], - [ - 41.10472, - 11.53683 - ], - [ - 41.11666, - 11.51324 - ], - [ - 41.12006, - 11.4903 - ], - [ - 41.11751, - 11.46522 - ], - [ - 41.11652, - 11.4461 - ], - [ - 41.12072, - 11.42138 - ], - [ - 41.11657, - 11.36152 - ], - [ - 41.11456, - 11.33203 - ], - [ - 41.10418, - 11.29532 - ], - [ - 41.07562, - 11.24864 - ], - [ - 41.01898, - 11.20082 - ], - [ - 41.01464, - 11.2313 - ], - [ - 40.99177, - 11.23176 - ], - [ - 40.96817, - 11.23485 - ], - [ - 40.94702, - 11.23259 - ], - [ - 40.92328, - 11.23395 - ], - [ - 40.88069, - 11.23814 - ], - [ - 40.84894, - 11.23474 - ], - [ - 40.82378, - 11.23008 - ], - [ - 40.79055, - 11.2033 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf006a2d", - "_rev":"1-83f1e43698799e4164f30c6128ab5ae9", - "type":"Feature", - "properties":{ - "GISNAME":"Mille-Sardo", - "Species":"Soemmering's Gazelle, Greater and Lesser Kudus, Ostrich" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 41.02378, - 9.50012 - ], - [ - 41.01148, - 9.47958 - ], - [ - 40.99594, - 9.44537 - ], - [ - 40.98031, - 9.41797 - ], - [ - 40.96022, - 9.38257 - ], - [ - 40.94229, - 9.35627 - ], - [ - 40.92665, - 9.32886 - ], - [ - 40.90632, - 9.3116 - ], - [ - 40.88489, - 9.29093 - ], - [ - 40.85429, - 9.27355 - ], - [ - 40.80671, - 9.24463 - ], - [ - 40.78294, - 9.22846 - ], - [ - 40.75231, - 9.21221 - ], - [ - 40.7274, - 9.19604 - ], - [ - 40.69454, - 9.17635 - ], - [ - 40.67976, - 9.17164 - ], - [ - 40.64916, - 9.15426 - ], - [ - 40.63097, - 9.14836 - ], - [ - 40.61951, - 9.1505 - ], - [ - 40.61521, - 9.14256 - ], - [ - 40.62278, - 9.16302 - ], - [ - 40.62486, - 9.17894 - ], - [ - 40.62915, - 9.20055 - ], - [ - 40.63218, - 9.23123 - ], - [ - 40.63527, - 9.25736 - ], - [ - 40.63383, - 9.28004 - ], - [ - 40.62336, - 9.2958 - ], - [ - 40.59802, - 9.31252 - ], - [ - 40.58069, - 9.32819 - ], - [ - 40.55869, - 9.35176 - ], - [ - 40.54132, - 9.37084 - ], - [ - 40.51242, - 9.39886 - ], - [ - 40.49737, - 9.41456 - ], - [ - 40.48799, - 9.43373 - ], - [ - 40.48089, - 9.45292 - ], - [ - 40.46934, - 9.46299 - ], - [ - 40.45788, - 9.46626 - ], - [ - 40.44633, - 9.47633 - ], - [ - 40.4474, - 9.48201 - ], - [ - 40.44379, - 9.49671 - ], - [ - 40.44316, - 9.54545 - ], - [ - 40.44736, - 9.57385 - ], - [ - 40.46516, - 9.61033 - ], - [ - 40.48082, - 9.63545 - ], - [ - 40.50423, - 9.67879 - ], - [ - 40.5154, - 9.69818 - ], - [ - 40.52991, - 9.72442 - ], - [ - 40.5377, - 9.74038 - ], - [ - 40.53628, - 9.76189 - ], - [ - 40.53253, - 9.78677 - ], - [ - 40.531, - 9.81733 - ], - [ - 40.53167, - 9.85359 - ], - [ - 40.53921, - 9.88879 - ], - [ - 40.5434, - 9.91715 - ], - [ - 40.54869, - 9.95005 - ], - [ - 40.5596, - 9.9898 - ], - [ - 40.55916, - 10.0213 - ], - [ - 40.55938, - 10.02169 - ], - [ - 40.55964, - 10.02509 - ], - [ - 40.55968, - 10.02803 - ], - [ - 40.56219, - 10.02866 - ], - [ - 40.56653, - 10.0284 - ], - [ - 40.56883, - 10.02973 - ], - [ - 40.57181, - 10.0306 - ], - [ - 40.57637, - 10.03056 - ], - [ - 40.57936, - 10.03233 - ], - [ - 40.58101, - 10.03571 - ], - [ - 40.58331, - 10.03769 - ], - [ - 40.58651, - 10.03858 - ], - [ - 40.58813, - 10.04013 - ], - [ - 40.58952, - 10.04215 - ], - [ - 40.59249, - 10.04167 - ], - [ - 40.59453, - 10.04096 - ], - [ - 40.59592, - 10.04365 - ], - [ - 40.59531, - 10.04911 - ], - [ - 40.59536, - 10.05405 - ], - [ - 40.59611, - 10.05948 - ], - [ - 40.59754, - 10.0651 - ], - [ - 40.59896, - 10.06984 - ], - [ - 40.60218, - 10.07135 - ], - [ - 40.60561, - 10.07247 - ], - [ - 40.60786, - 10.07463 - ], - [ - 40.64533, - 10.07006 - ], - [ - 40.68535, - 10.066 - ], - [ - 40.73446, - 10.06545 - ], - [ - 40.78239, - 10.06714 - ], - [ - 40.81658, - 10.07207 - ], - [ - 40.89535, - 10.07299 - ], - [ - 40.90218, - 10.07534 - ], - [ - 40.92986, - 10.05302 - ], - [ - 40.94741, - 10.0204 - ], - [ - 40.9614, - 9.99792 - ], - [ - 40.97781, - 9.96528 - ], - [ - 40.98844, - 9.93823 - ], - [ - 40.99556, - 9.91793 - ], - [ - 41.00391, - 9.88971 - ], - [ - 41.0089, - 9.85693 - ], - [ - 41.01382, - 9.8298 - ], - [ - 41.01978, - 9.80948 - ], - [ - 41.02348, - 9.78913 - ], - [ - 41.02387, - 9.75855 - ], - [ - 41.02664, - 9.72119 - ], - [ - 41.02839, - 9.67362 - ], - [ - 41.02881, - 9.64076 - ], - [ - 41.02476, - 9.60103 - ], - [ - 41.0251, - 9.57497 - ], - [ - 41.02559, - 9.53643 - ], - [ - 41.02123, - 9.5205 - ], - [ - 41.02601, - 9.50469 - ], - [ - 41.02378, - 9.50012 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf006c16", - "_rev":"1-d319070d0b2891403ecccd8c6b271732", - "type":"Feature", - "properties":{ - "GISNAME":"Afdem-Gewane" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 40.61521, - 9.14256 - ], - [ - 40.60837, - 9.12994 - ], - [ - 40.58027, - 9.09555 - ], - [ - 40.54858, - 9.07361 - ], - [ - 40.51471, - 9.0437 - ], - [ - 40.47276, - 9.0205 - ], - [ - 40.44445, - 9.00199 - ], - [ - 40.40933, - 8.98114 - ], - [ - 40.3811, - 8.95696 - ], - [ - 40.34588, - 8.94292 - ], - [ - 40.32319, - 8.93129 - ], - [ - 40.30619, - 8.92087 - ], - [ - 40.29024, - 8.91841 - ], - [ - 40.27763, - 8.92281 - ], - [ - 40.2627, - 8.92944 - ], - [ - 40.2523, - 8.93954 - ], - [ - 40.25452, - 8.94411 - ], - [ - 40.25988, - 8.97143 - ], - [ - 40.26986, - 8.99426 - ], - [ - 40.27744, - 9.02614 - ], - [ - 40.28165, - 9.05344 - ], - [ - 40.28254, - 9.07388 - ], - [ - 40.28097, - 9.10679 - ], - [ - 40.28169, - 9.13971 - ], - [ - 40.28486, - 9.15905 - ], - [ - 40.29023, - 9.18522 - ], - [ - 40.29669, - 9.21593 - ], - [ - 40.30444, - 9.23531 - ], - [ - 40.31209, - 9.26151 - ], - [ - 40.32889, - 9.28666 - ], - [ - 40.34458, - 9.30954 - ], - [ - 40.35914, - 9.33126 - ], - [ - 40.37375, - 9.34958 - ], - [ - 40.3873, - 9.36109 - ], - [ - 40.40419, - 9.37943 - ], - [ - 40.4176, - 9.40227 - ], - [ - 40.43436, - 9.43083 - ], - [ - 40.44316, - 9.45702 - ], - [ - 40.44633, - 9.47633 - ], - [ - 40.45788, - 9.46626 - ], - [ - 40.46934, - 9.46299 - ], - [ - 40.48089, - 9.45292 - ], - [ - 40.48799, - 9.43373 - ], - [ - 40.49737, - 9.41456 - ], - [ - 40.51242, - 9.39886 - ], - [ - 40.54132, - 9.37084 - ], - [ - 40.55869, - 9.35176 - ], - [ - 40.58069, - 9.32819 - ], - [ - 40.59802, - 9.31252 - ], - [ - 40.62336, - 9.2958 - ], - [ - 40.63383, - 9.28004 - ], - [ - 40.63527, - 9.25736 - ], - [ - 40.63218, - 9.23123 - ], - [ - 40.62915, - 9.20055 - ], - [ - 40.62486, - 9.17894 - ], - [ - 40.62278, - 9.16302 - ], - [ - 40.61521, - 9.14256 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf00796b", - "_rev":"1-c1efcd7a096a365a5fb30267c470e82e", - "type":"Feature", - "properties":{ - "GISNAME":"Alledeghi", - "Species":"Oryx, Soemmering's Gazelle, Greater and Lesser Kudus, Ostrich" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 40.08281, - 8.35681 - ], - [ - 40.08291, - 8.34879 - ], - [ - 40.08276, - 8.34196 - ], - [ - 40.08218, - 8.31693 - ], - [ - 40.0876, - 8.251 - ], - [ - 40.0925, - 8.22489 - ], - [ - 40.09286, - 8.19645 - ], - [ - 40.09443, - 8.16347 - ], - [ - 40.09929, - 8.14076 - ], - [ - 40.09515, - 8.10771 - ], - [ - 40.09206, - 8.08149 - ], - [ - 40.07756, - 8.05514 - ], - [ - 40.04808, - 8.03885 - ], - [ - 40.01393, - 8.03048 - ], - [ - 39.98871, - 8.03815 - ], - [ - 39.95993, - 8.05717 - ], - [ - 39.94021, - 8.08084 - ], - [ - 39.91922, - 8.11474 - ], - [ - 39.89499, - 8.13494 - ], - [ - 39.8606, - 8.14477 - ], - [ - 39.82301, - 8.13864 - ], - [ - 39.79139, - 8.11095 - ], - [ - 39.77571, - 8.08686 - ], - [ - 39.76012, - 8.05595 - ], - [ - 39.74324, - 8.03639 - ], - [ - 39.72043, - 8.03499 - ], - [ - 39.70095, - 8.04045 - ], - [ - 39.67545, - 8.06974 - ], - [ - 39.65783, - 8.10824 - ], - [ - 39.64482, - 8.14337 - ], - [ - 39.62377, - 8.18181 - ], - [ - 39.59969, - 8.19063 - ], - [ - 39.5712, - 8.18574 - ], - [ - 39.55771, - 8.16965 - ], - [ - 39.55, - 8.1468 - ], - [ - 39.5469, - 8.12172 - ], - [ - 39.55179, - 8.09674 - ], - [ - 39.57839, - 8.07088 - ], - [ - 39.60279, - 8.03815 - ], - [ - 39.6227, - 7.99854 - ], - [ - 39.63782, - 7.97709 - ], - [ - 39.66102, - 7.94889 - ], - [ - 39.68974, - 7.93557 - ], - [ - 39.71954, - 7.92681 - ], - [ - 39.76415, - 7.92051 - ], - [ - 39.79164, - 7.914 - ], - [ - 39.82594, - 7.90985 - ], - [ - 39.86941, - 7.90353 - ], - [ - 39.90039, - 7.89137 - ], - [ - 39.93823, - 7.87929 - ], - [ - 39.96702, - 7.86027 - ], - [ - 40.00263, - 7.84361 - ], - [ - 40.03123, - 7.83939 - ], - [ - 40.07004, - 7.83985 - ], - [ - 40.10546, - 7.83799 - ], - [ - 40.13749, - 7.83381 - ], - [ - 40.17288, - 7.83423 - ], - [ - 40.21167, - 7.83696 - ], - [ - 40.23688, - 7.82929 - ], - [ - 40.252, - 7.80782 - ], - [ - 40.27272, - 7.7944 - ], - [ - 40.27652, - 7.76597 - ], - [ - 40.28024, - 7.74323 - ], - [ - 40.28054, - 7.71931 - ], - [ - 40.27052, - 7.69982 - ], - [ - 40.25582, - 7.68825 - ], - [ - 40.23198, - 7.67772 - ], - [ - 40.20251, - 7.66028 - ], - [ - 40.1706, - 7.65534 - ], - [ - 40.10439, - 7.65456 - ], - [ - 40.06327, - 7.65521 - ], - [ - 40.02335, - 7.65246 - ], - [ - 39.99362, - 7.65553 - ], - [ - 39.96745, - 7.64952 - ], - [ - 39.9411, - 7.65605 - ], - [ - 39.9158, - 7.66942 - ], - [ - 39.89961, - 7.68518 - ], - [ - 39.88687, - 7.69984 - ], - [ - 39.86828, - 7.72469 - ], - [ - 39.84618, - 7.75633 - ], - [ - 39.82421, - 7.77771 - ], - [ - 39.80344, - 7.79455 - ], - [ - 39.78036, - 7.81364 - ], - [ - 39.74816, - 7.83149 - ], - [ - 39.71373, - 7.84589 - ], - [ - 39.69423, - 7.85249 - ], - [ - 39.65661, - 7.84749 - ], - [ - 39.62584, - 7.84371 - ], - [ - 39.59982, - 7.82404 - ], - [ - 39.58856, - 7.81252 - ], - [ - 39.57731, - 7.79872 - ], - [ - 39.56958, - 7.77812 - ], - [ - 39.56086, - 7.74612 - ], - [ - 39.56117, - 7.7222 - ], - [ - 39.56721, - 7.69607 - ], - [ - 39.57428, - 7.67906 - ], - [ - 39.58144, - 7.65522 - ], - [ - 39.5852, - 7.62905 - ], - [ - 39.58906, - 7.59491 - ], - [ - 39.59391, - 7.57332 - ], - [ - 39.59431, - 7.54141 - ], - [ - 39.59236, - 7.51631 - ], - [ - 39.5859, - 7.48546 - ], - [ - 39.58608, - 7.47178 - ], - [ - 39.56361, - 7.44301 - ], - [ - 39.5432, - 7.43137 - ], - [ - 39.52172, - 7.41516 - ], - [ - 39.49575, - 7.39205 - ], - [ - 39.48124, - 7.36679 - ], - [ - 39.47687, - 7.35078 - ], - [ - 39.47156, - 7.31993 - ], - [ - 39.46959, - 7.29596 - ], - [ - 39.46648, - 7.27083 - ], - [ - 39.45861, - 7.26161 - ], - [ - 39.44508, - 7.24776 - ], - [ - 39.4326, - 7.24191 - ], - [ - 39.41684, - 7.22462 - ], - [ - 39.3943, - 7.20154 - ], - [ - 39.37738, - 7.18537 - ], - [ - 39.35608, - 7.15432 - ], - [ - 39.33354, - 7.13124 - ], - [ - 39.31555, - 7.10935 - ], - [ - 39.2883, - 7.09762 - ], - [ - 39.25539, - 7.08125 - ], - [ - 39.21111, - 7.06247 - ], - [ - 39.17809, - 7.05524 - ], - [ - 39.12122, - 7.03745 - ], - [ - 39.0802, - 7.03126 - ], - [ - 39.0484, - 7.01833 - ], - [ - 39.02344, - 7.00548 - ], - [ - 38.949098, - 6.969933 - ], - [ - 38.92361, - 6.95409 - ], - [ - 38.858803, - 6.931185 - ], - [ - 38.844043, - 6.922543 - ], - [ - 38.823603, - 6.910576 - ], - [ - 38.7999, - 6.8967 - ], - [ - 38.79635, - 6.90579 - ], - [ - 38.79388, - 6.9206 - ], - [ - 38.79024, - 6.93767 - ], - [ - 38.78773, - 6.95476 - ], - [ - 38.79094, - 6.97192 - ], - [ - 38.79885, - 6.97886 - ], - [ - 38.81795, - 7.00305 - ], - [ - 38.83139, - 7.02261 - ], - [ - 38.83572, - 7.04092 - ], - [ - 38.83885, - 7.06492 - ], - [ - 38.84418, - 7.09351 - ], - [ - 38.84956, - 7.11981 - ], - [ - 38.85609, - 7.14498 - ], - [ - 38.88643, - 7.18299 - ], - [ - 38.89975, - 7.2128 - ], - [ - 38.91434, - 7.23237 - ], - [ - 38.91589, - 7.23815 - ], - [ - 38.92197, - 7.26097 - ], - [ - 38.92623, - 7.28497 - ], - [ - 38.93384, - 7.31471 - ], - [ - 38.9381, - 7.33871 - ], - [ - 38.938, - 7.34669 - ], - [ - 38.93529, - 7.37972 - ], - [ - 38.92673, - 7.42409 - ], - [ - 38.9206, - 7.45708 - ], - [ - 38.91787, - 7.49124 - ], - [ - 38.91281, - 7.52994 - ], - [ - 38.91366, - 7.55274 - ], - [ - 38.91389, - 7.5552 - ], - [ - 38.91566, - 7.57442 - ], - [ - 38.91778, - 7.58698 - ], - [ - 38.91525, - 7.60632 - ], - [ - 38.92159, - 7.64628 - ], - [ - 38.93605, - 7.67608 - ], - [ - 38.94712, - 7.70355 - ], - [ - 38.9649, - 7.74136 - ], - [ - 38.96915, - 7.76647 - ], - [ - 38.97896, - 7.80304 - ], - [ - 38.98989, - 7.84076 - ], - [ - 39.00659, - 7.87398 - ], - [ - 39.0312, - 7.91413 - ], - [ - 39.05588, - 7.94744 - ], - [ - 39.07274, - 7.96814 - ], - [ - 39.10558, - 7.99016 - ], - [ - 39.13845, - 8.00876 - ], - [ - 39.17023, - 8.0228 - ], - [ - 39.19854, - 8.04135 - ], - [ - 39.21432, - 8.05747 - ], - [ - 39.23207, - 8.09752 - ], - [ - 39.25105, - 8.13189 - ], - [ - 39.26554, - 8.15938 - ], - [ - 39.28581, - 8.18124 - ], - [ - 39.30616, - 8.19741 - ], - [ - 39.31404, - 8.20547 - ], - [ - 39.34019, - 8.21374 - ], - [ - 39.39482, - 8.22804 - ], - [ - 39.42794, - 8.22729 - ], - [ - 39.444, - 8.22179 - ], - [ - 39.4679, - 8.22777 - ], - [ - 39.48487, - 8.24048 - ], - [ - 39.49834, - 8.25771 - ], - [ - 39.51738, - 8.28638 - ], - [ - 39.52176, - 8.30122 - ], - [ - 39.54755, - 8.33792 - ], - [ - 39.58514, - 8.34519 - ], - [ - 39.62963, - 8.34799 - ], - [ - 39.67053, - 8.3644 - ], - [ - 39.69756, - 8.39315 - ], - [ - 39.72477, - 8.40826 - ], - [ - 39.76107, - 8.42688 - ], - [ - 39.78173, - 8.41803 - ], - [ - 39.83543, - 8.41525 - ], - [ - 39.85131, - 8.4234 - ], - [ - 39.86109, - 8.42243 - ], - [ - 39.86382, - 8.42216 - ], - [ - 39.87189, - 8.42137 - ], - [ - 39.90736, - 8.4161 - ], - [ - 39.91012, - 8.41583 - ], - [ - 39.93937, - 8.41306 - ], - [ - 39.9479, - 8.41581 - ], - [ - 39.96125, - 8.42011 - ], - [ - 39.97234, - 8.42369 - ], - [ - 39.98583, - 8.43977 - ], - [ - 39.98768, - 8.44753 - ], - [ - 39.98909, - 8.45345 - ], - [ - 40.0092, - 8.4878 - ], - [ - 40.02151, - 8.50614 - ], - [ - 40.03602, - 8.53246 - ], - [ - 40.04715, - 8.55533 - ], - [ - 40.06389, - 8.58509 - ], - [ - 40.09095, - 8.61155 - ], - [ - 40.12933, - 8.6461 - ], - [ - 40.15644, - 8.66916 - ], - [ - 40.18941, - 8.67977 - ], - [ - 40.20881, - 8.68114 - ], - [ - 40.23183, - 8.66663 - ], - [ - 40.23334, - 8.66604 - ], - [ - 40.25134, - 8.65891 - ], - [ - 40.25958, - 8.63968 - ], - [ - 40.25535, - 8.61349 - ], - [ - 40.22372, - 8.58697 - ], - [ - 40.20577, - 8.56175 - ], - [ - 40.17663, - 8.51934 - ], - [ - 40.15417, - 8.49065 - ], - [ - 40.12832, - 8.45851 - ], - [ - 40.1126, - 8.44246 - ], - [ - 40.11254, - 8.4424 - ], - [ - 40.09805, - 8.41493 - ], - [ - 40.09571, - 8.40792 - ], - [ - 40.08816, - 8.38525 - ], - [ - 40.08462, - 8.37191 - ], - [ - 40.08271, - 8.36471 - ], - [ - 40.08281, - 8.35681 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf007e4c", - "_rev":"1-9eefa62672539b61f9214cde796a08b8", - "type":"Feature", - "properties":{ - "GISNAME":"Arsi" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 39.84629, - 9.056874 - ], - [ - 39.906644, - 9.057215 - ], - [ - 39.905724, - 9.136827 - ], - [ - 39.911371, - 9.136859 - ], - [ - 39.918445, - 9.134696 - ], - [ - 39.923395, - 9.133465 - ], - [ - 39.927995, - 9.131918 - ], - [ - 39.931535, - 9.130364 - ], - [ - 39.935757, - 9.132276 - ], - [ - 39.938931, - 9.132609 - ], - [ - 39.942815, - 9.132316 - ], - [ - 39.943705, - 9.106515 - ], - [ - 39.975119, - 9.106378 - ], - [ - 39.991093, - 9.093567 - ], - [ - 39.995699, - 9.091075 - ], - [ - 39.998891, - 9.088891 - ], - [ - 40.009131, - 9.08832 - ], - [ - 40.009018, - 9.104054 - ], - [ - 40.027382, - 9.102585 - ], - [ - 40.026861, - 9.076777 - ], - [ - 40.088782, - 9.055419 - ], - [ - 40.098703, - 9.050127 - ], - [ - 40.102952, - 9.048264 - ], - [ - 40.106147, - 9.045765 - ], - [ - 40.110425, - 9.039811 - ], - [ - 40.115778, - 9.031661 - ], - [ - 40.12465, - 9.025105 - ], - [ - 40.132813, - 9.018859 - ], - [ - 40.140289, - 9.010093 - ], - [ - 40.147058, - 9.001323 - ], - [ - 40.148853, - 8.997244 - ], - [ - 40.148188, - 8.991577 - ], - [ - 40.137984, - 8.987115 - ], - [ - 40.130986, - 8.978581 - ], - [ - 40.130676, - 8.972602 - ], - [ - 40.134589, - 8.968535 - ], - [ - 40.141757, - 8.953477 - ], - [ - 40.153783, - 8.950086 - ], - [ - 40.150298, - 8.943775 - ], - [ - 40.147871, - 8.937785 - ], - [ - 40.149306, - 8.934648 - ], - [ - 40.147905, - 8.933067 - ], - [ - 40.145796, - 8.931797 - ], - [ - 40.118768, - 8.910884 - ], - [ - 40.11351, - 8.905822 - ], - [ - 40.111057, - 8.903292 - ], - [ - 40.103684, - 8.897903 - ], - [ - 40.103718, - 8.893186 - ], - [ - 40.100206, - 8.89065 - ], - [ - 40.093513, - 8.888724 - ], - [ - 40.08225, - 8.884257 - ], - [ - 40.075568, - 8.88076 - ], - [ - 40.066441, - 8.873789 - ], - [ - 40.058714, - 8.868399 - ], - [ - 40.049577, - 8.862686 - ], - [ - 40.044998, - 8.861402 - ], - [ - 40.041113, - 8.861695 - ], - [ - 40.033039, - 8.855359 - ], - [ - 40.028815, - 8.853763 - ], - [ - 40.026337, - 8.854692 - ], - [ - 40.021735, - 8.856553 - ], - [ - 40.015357, - 8.859976 - ], - [ - 40.008625, - 8.863396 - ], - [ - 40.001525, - 8.869016 - ], - [ - 40.001505, - 8.871846 - ], - [ - 40.001847, - 8.873421 - ], - [ - 40.006734, - 8.880996 - ], - [ - 40.003175, - 8.885064 - ], - [ - 39.999893, - 8.899826 - ], - [ - 39.997676, - 8.913652 - ], - [ - 39.997622, - 8.9212 - ], - [ - 39.9979, - 8.931581 - ], - [ - 39.986239, - 8.933402 - ], - [ - 39.974591, - 8.933336 - ], - [ - 39.960117, - 8.933568 - ], - [ - 39.937534, - 8.932496 - ], - [ - 39.930437, - 8.937803 - ], - [ - 39.911373, - 8.938324 - ], - [ - 39.903987, - 8.934508 - ], - [ - 39.893048, - 8.934132 - ], - [ - 39.888099, - 8.935048 - ], - [ - 39.878931, - 8.933738 - ], - [ - 39.866586, - 8.93241 - ], - [ - 39.849305, - 8.930425 - ], - [ - 39.789432, - 8.961543 - ], - [ - 39.84629, - 9.056874 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf008b9d", - "_rev":"1-e6f4e85c29a5fb823cc1a1134550135d", - "type":"Feature", - "properties":{ - "GISNAME":"Awash", - "Species":"Beisa Oryx, Soemmering's Gazelle, Swayne's Hartebeest, Ostrich" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 34.58092, - 7.91575 - ], - [ - 34.57362, - 7.84065 - ], - [ - 34.38517, - 7.61405 - ], - [ - 34.33553, - 7.55435 - ], - [ - 34.32893, - 7.55452 - ], - [ - 34.51172, - 8.21962 - ], - [ - 34.51608, - 8.21672 - ], - [ - 34.51825, - 8.21451 - ], - [ - 34.52076, - 8.21299 - ], - [ - 34.52272, - 8.21174 - ], - [ - 34.52395, - 8.21139 - ], - [ - 34.52431, - 8.21154 - ], - [ - 34.53936, - 8.21022 - ], - [ - 34.55147, - 8.20629 - ], - [ - 34.56459, - 8.20413 - ], - [ - 34.58298, - 8.21437 - ], - [ - 34.58585, - 8.21519 - ], - [ - 34.59064, - 8.21685 - ], - [ - 34.6056, - 8.1698 - ], - [ - 34.59382, - 8.04856 - ], - [ - 34.59097, - 8.01923 - ], - [ - 34.58092, - 7.91575 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf009798", - "_rev":"2-e2c85758dd7a4023074ddd5c3703aa12", - "type":"Feature", - "properties":{ - "GISNAME":"Gambella", - "Species":"White-Eared Kob, Nile Lechwe, Roan Antelope, Elephant, Buffalo, Lelwel Hartebeest" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 38.2689, - 7.57258 - ], - [ - 38.25457, - 7.57592 - ], - [ - 38.24025, - 7.58085 - ], - [ - 38.2179, - 7.57952 - ], - [ - 38.20196, - 7.58129 - ], - [ - 38.1685, - 7.58644 - ], - [ - 38.14309, - 7.59943 - ], - [ - 38.12572, - 7.6171 - ], - [ - 38.12422, - 7.62664 - ], - [ - 38.13408, - 7.65511 - ], - [ - 38.14706, - 7.67561 - ], - [ - 38.17604, - 7.70068 - ], - [ - 38.20504, - 7.72734 - ], - [ - 38.22597, - 7.74615 - ], - [ - 38.2421, - 7.76184 - ], - [ - 38.27093, - 7.77263 - ], - [ - 38.29971, - 7.77865 - ], - [ - 38.31223, - 7.7531 - ], - [ - 38.3183, - 7.72287 - ], - [ - 38.31961, - 7.69428 - ], - [ - 38.31298, - 7.67053 - ], - [ - 38.31269, - 7.64196 - ], - [ - 38.29804, - 7.61354 - ], - [ - 38.2867, - 7.5962 - ], - [ - 38.2689, - 7.57258 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf00a2a4", - "_rev":"1-523e11ab29b6e7040710736e36f99cb3", - "type":"Feature", - "properties":{ - "GISNAME":"Boyo Swamp" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 34.32085, - 7.5555 - ], - [ - 34.31907, - 7.55088 - ], - [ - 34.30787, - 7.53365 - ], - [ - 34.29104, - 7.51065 - ], - [ - 34.28327, - 7.49346 - ], - [ - 34.26546, - 7.45791 - ], - [ - 34.23863, - 7.41314 - ], - [ - 34.21067, - 7.3672 - ], - [ - 34.19624, - 7.3351 - ], - [ - 34.16375, - 7.28682 - ], - [ - 34.14018, - 7.25461 - ], - [ - 34.11669, - 7.21669 - ], - [ - 34.1023, - 7.18156 - ], - [ - 34.09835, - 7.1859 - ], - [ - 34.30347, - 7.60094 - ], - [ - 34.30564, - 7.58473 - ], - [ - 34.3055, - 7.58114 - ], - [ - 34.30601, - 7.57036 - ], - [ - 34.30931, - 7.55861 - ], - [ - 34.31956, - 7.55566 - ], - [ - 34.32085, - 7.5555 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf00a898", - "_rev":"2-d0ebd95b063798a15c09ed0b864abc1d", - "type":"Feature", - "properties":{ - "GISNAME":"Tedo" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 35.05609, - 6.78834 - ], - [ - 35.06648, - 6.7863 - ], - [ - 35.08711, - 6.7797 - ], - [ - 35.11588, - 6.76291 - ], - [ - 35.14794, - 6.7553 - ], - [ - 35.17294, - 6.76473 - ], - [ - 35.19279, - 6.81976 - ], - [ - 35.21673, - 6.82233 - ], - [ - 35.25445, - 6.81935 - ], - [ - 35.27403, - 6.80589 - ], - [ - 35.28917, - 6.78323 - ], - [ - 35.30426, - 6.764 - ], - [ - 35.31938, - 6.74249 - ], - [ - 35.33676, - 6.72214 - ], - [ - 35.37331, - 6.72143 - ], - [ - 35.40646, - 6.7184 - ], - [ - 35.4384, - 6.72106 - ], - [ - 35.47046, - 6.71345 - ], - [ - 35.49916, - 6.70123 - ], - [ - 35.53245, - 6.68792 - ], - [ - 35.54745, - 6.67553 - ], - [ - 35.56147, - 6.65058 - ], - [ - 35.57097, - 6.62214 - ], - [ - 35.56673, - 6.59696 - ], - [ - 35.55345, - 6.56368 - ], - [ - 35.53326, - 6.53603 - ], - [ - 35.51073, - 6.51177 - ], - [ - 35.49491, - 6.49902 - ], - [ - 35.47456, - 6.48279 - ], - [ - 35.44966, - 6.46535 - ], - [ - 35.41334, - 6.44893 - ], - [ - 35.37361, - 6.43018 - ], - [ - 35.32704, - 6.41135 - ], - [ - 35.29176, - 6.40293 - ], - [ - 35.25638, - 6.40137 - ], - [ - 35.22883, - 6.41247 - ], - [ - 35.21042, - 6.42368 - ], - [ - 35.16929, - 6.42547 - ], - [ - 35.14891, - 6.41266 - ], - [ - 35.15278, - 6.37729 - ], - [ - 35.15757, - 6.36021 - ], - [ - 35.15554, - 6.34076 - ], - [ - 35.1421, - 6.32003 - ], - [ - 35.1262, - 6.31298 - ], - [ - 35.09094, - 6.30228 - ], - [ - 35.05896, - 6.30304 - ], - [ - 35.02812, - 6.30382 - ], - [ - 34.99955, - 6.30577 - ], - [ - 34.97588, - 6.28149 - ], - [ - 34.95349, - 6.26708 - ], - [ - 34.95523, - 6.28364 - ], - [ - 34.97149, - 6.28956 - ], - [ - 34.98092, - 6.30548 - ], - [ - 34.98669, - 6.32564 - ], - [ - 34.99136, - 6.34282 - ], - [ - 34.9927, - 6.34599 - ], - [ - 34.9938, - 6.35048 - ], - [ - 34.98786, - 6.36355 - ], - [ - 34.98664, - 6.38164 - ], - [ - 34.99292, - 6.39248 - ], - [ - 34.99798, - 6.39909 - ], - [ - 35.00103, - 6.40087 - ], - [ - 35.00666, - 6.40497 - ], - [ - 35.00818, - 6.41784 - ], - [ - 35.01288, - 6.42763 - ], - [ - 35.01735, - 6.44002 - ], - [ - 35.0125, - 6.45828 - ], - [ - 35.00382, - 6.47583 - ], - [ - 34.99158, - 6.48079 - ], - [ - 34.97565, - 6.49872 - ], - [ - 34.96317, - 6.50663 - ], - [ - 34.95456, - 6.5088 - ], - [ - 34.9495, - 6.52479 - ], - [ - 34.94082, - 6.54147 - ], - [ - 34.92988, - 6.55655 - ], - [ - 34.91333, - 6.56209 - ], - [ - 34.90557, - 6.57514 - ], - [ - 34.88791, - 6.58025 - ], - [ - 34.88309, - 6.5908 - ], - [ - 34.87988, - 6.60116 - ], - [ - 34.86695, - 6.6054 - ], - [ - 34.84069, - 6.60752 - ], - [ - 34.81717, - 6.60597 - ], - [ - 34.80046, - 6.59913 - ], - [ - 34.78983, - 6.59726 - ], - [ - 34.77465, - 6.59899 - ], - [ - 34.76286, - 6.60545 - ], - [ - 34.74648, - 6.62433 - ], - [ - 34.73507, - 6.6396 - ], - [ - 34.72121, - 6.6513 - ], - [ - 34.70731, - 6.66946 - ], - [ - 34.70633, - 6.68303 - ], - [ - 34.70198, - 6.69112 - ], - [ - 34.70177, - 6.69132 - ], - [ - 34.70176, - 6.69088 - ], - [ - 34.69178, - 6.69536 - ], - [ - 34.66977, - 6.70586 - ], - [ - 34.65612, - 6.71818 - ], - [ - 34.64587, - 6.73031 - ], - [ - 34.63813, - 6.73884 - ], - [ - 34.62976, - 6.73946 - ], - [ - 34.61874, - 6.72589 - ], - [ - 34.60199, - 6.72579 - ], - [ - 34.57347, - 6.72584 - ], - [ - 34.55532, - 6.73469 - ], - [ - 34.54103, - 6.74048 - ], - [ - 34.53352, - 6.74832 - ], - [ - 34.53499, - 6.76844 - ], - [ - 34.53395, - 6.79419 - ], - [ - 34.53588, - 6.81156 - ], - [ - 34.53423, - 6.82422 - ], - [ - 34.534, - 6.82538 - ], - [ - 34.52716, - 6.83346 - ], - [ - 34.51733, - 6.85145 - ], - [ - 34.51027, - 6.85906 - ], - [ - 34.50521, - 6.87277 - ], - [ - 34.49612, - 6.87999 - ], - [ - 34.48721, - 6.89365 - ], - [ - 34.48011, - 6.90895 - ], - [ - 34.47372, - 6.91915 - ], - [ - 34.47212, - 6.92092 - ], - [ - 34.47189, - 6.92136 - ], - [ - 34.46894, - 6.92295 - ], - [ - 34.46259, - 6.92535 - ], - [ - 34.45352, - 6.928 - ], - [ - 34.43517, - 6.92968 - ], - [ - 34.42859, - 6.93305 - ], - [ - 34.42859, - 6.93324 - ], - [ - 34.42836, - 6.93348 - ], - [ - 34.42767, - 6.93488 - ], - [ - 34.42426, - 6.93795 - ], - [ - 34.40543, - 6.94512 - ], - [ - 34.38277, - 6.94945 - ], - [ - 34.36691, - 6.95339 - ], - [ - 34.34491, - 6.95849 - ], - [ - 34.33245, - 6.95906 - ], - [ - 34.31637, - 6.9608 - ], - [ - 34.29777, - 6.9672 - ], - [ - 34.28207, - 6.97931 - ], - [ - 34.27382, - 6.99801 - ], - [ - 34.25677, - 7.01004 - ], - [ - 34.24253, - 7.00614 - ], - [ - 34.23117, - 7.01235 - ], - [ - 34.21889, - 7.02221 - ], - [ - 34.21406, - 7.0348 - ], - [ - 34.19317, - 7.04393 - ], - [ - 34.18874, - 7.06552 - ], - [ - 34.18884, - 7.08951 - ], - [ - 34.1903, - 7.10863 - ], - [ - 34.18378, - 7.12835 - ], - [ - 34.19435, - 7.12635 - ], - [ - 34.21375, - 7.12658 - ], - [ - 34.24349, - 7.12351 - ], - [ - 34.26159, - 7.13628 - ], - [ - 34.28316, - 7.14566 - ], - [ - 34.31046, - 7.15397 - ], - [ - 34.33678, - 7.14971 - ], - [ - 34.36881, - 7.14439 - ], - [ - 34.4169, - 7.13469 - ], - [ - 34.46132, - 7.1432 - ], - [ - 34.49195, - 7.15839 - ], - [ - 34.51819, - 7.15984 - ], - [ - 34.54237, - 7.14416 - ], - [ - 34.58243, - 7.13665 - ], - [ - 34.61228, - 7.12445 - ], - [ - 34.65099, - 7.13289 - ], - [ - 34.68399, - 7.14127 - ], - [ - 34.71952, - 7.13142 - ], - [ - 34.74611, - 7.1055 - ], - [ - 34.77141, - 7.09097 - ], - [ - 34.81847, - 7.07213 - ], - [ - 34.87679, - 7.06483 - ], - [ - 34.92602, - 7.05514 - ], - [ - 34.96151, - 7.04758 - ], - [ - 34.9891, - 7.03307 - ], - [ - 35.00185, - 7.01838 - ], - [ - 35.01694, - 6.99916 - ], - [ - 35.03099, - 6.97194 - ], - [ - 35.02472, - 6.92622 - ], - [ - 35.02068, - 6.88508 - ], - [ - 35.01925, - 6.87739 - ], - [ - 35.0132, - 6.84504 - ], - [ - 35.01694, - 6.81997 - ], - [ - 35.039, - 6.79169 - ], - [ - 35.05609, - 6.78834 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf00b779", - "_rev":"1-fb64d4001013c471dc4ddf223c05900a", - "type":"Feature", - "properties":{ - "GISNAME":"Akobo" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 40.2523, - 8.93954 - ], - [ - 40.23741, - 8.94277 - ], - [ - 40.22593, - 8.94718 - ], - [ - 40.19855, - 8.92696 - ], - [ - 40.19287, - 8.93227 - ], - [ - 40.18481, - 8.93963 - ], - [ - 40.16497, - 8.95538 - ], - [ - 40.15816, - 8.95965 - ], - [ - 40.15861, - 8.96227 - ], - [ - 40.16069, - 8.96585 - ], - [ - 40.16322, - 8.96967 - ], - [ - 40.16622, - 8.97348 - ], - [ - 40.16898, - 8.97685 - ], - [ - 40.17333, - 8.97996 - ], - [ - 40.17677, - 8.98286 - ], - [ - 40.17933, - 8.98711 - ], - [ - 40.18118, - 8.99139 - ], - [ - 40.18191, - 8.99635 - ], - [ - 40.1824, - 9.00018 - ], - [ - 40.18173, - 9.00132 - ], - [ - 40.18173, - 9.00154 - ], - [ - 40.18245, - 9.00561 - ], - [ - 40.18248, - 9.00945 - ], - [ - 40.18343, - 9.01236 - ], - [ - 40.18528, - 9.01505 - ], - [ - 40.18621, - 9.01865 - ], - [ - 40.18489, - 9.0225 - ], - [ - 40.18287, - 9.02567 - ], - [ - 40.18108, - 9.02862 - ], - [ - 40.17928, - 9.03157 - ], - [ - 40.17863, - 9.03541 - ], - [ - 40.17913, - 9.03902 - ], - [ - 40.18074, - 9.04149 - ], - [ - 40.18213, - 9.04396 - ], - [ - 40.18216, - 9.04599 - ], - [ - 40.1799, - 9.04895 - ], - [ - 40.17857, - 9.05212 - ], - [ - 40.17905, - 9.05527 - ], - [ - 40.17976, - 9.05752 - ], - [ - 40.17911, - 9.06114 - ], - [ - 40.1771, - 9.06499 - ], - [ - 40.17576, - 9.06793 - ], - [ - 40.17443, - 9.07109 - ], - [ - 40.17377, - 9.07383 - ], - [ - 40.17265, - 9.07586 - ], - [ - 40.1704, - 9.07837 - ], - [ - 40.16768, - 9.07974 - ], - [ - 40.1652, - 9.08111 - ], - [ - 40.16294, - 9.08341 - ], - [ - 40.16251, - 9.08567 - ], - [ - 40.16187, - 9.09016 - ], - [ - 40.161, - 9.09537 - ], - [ - 40.15989, - 9.09809 - ], - [ - 40.15809, - 9.09947 - ], - [ - 40.15561, - 9.10106 - ], - [ - 40.15289, - 9.10335 - ], - [ - 40.15063, - 9.1054 - ], - [ - 40.15042, - 9.10743 - ], - [ - 40.15047, - 9.11286 - ], - [ - 40.15029, - 9.1167 - ], - [ - 40.14963, - 9.11963 - ], - [ - 40.14805, - 9.12166 - ], - [ - 40.14602, - 9.1235 - ], - [ - 40.14378, - 9.12666 - ], - [ - 40.142, - 9.1312 - ], - [ - 40.1409, - 9.13484 - ], - [ - 40.1398, - 9.13957 - ], - [ - 40.13802, - 9.14412 - ], - [ - 40.1379, - 9.14446 - ], - [ - 40.12513, - 9.14922 - ], - [ - 40.09875, - 9.15913 - ], - [ - 40.07929, - 9.1623 - ], - [ - 40.05756, - 9.16545 - ], - [ - 40.01756, - 9.16839 - ], - [ - 39.99128, - 9.17034 - ], - [ - 39.97412, - 9.17241 - ], - [ - 39.9649, - 9.17912 - ], - [ - 39.94877, - 9.19028 - ], - [ - 39.95881, - 9.20855 - ], - [ - 39.97311, - 9.25071 - ], - [ - 39.97276, - 9.27794 - ], - [ - 39.97132, - 9.30061 - ], - [ - 39.9618, - 9.33113 - ], - [ - 39.9569, - 9.35716 - ], - [ - 39.94599, - 9.40581 - ], - [ - 39.94678, - 9.43303 - ], - [ - 39.9476, - 9.45799 - ], - [ - 39.94937, - 9.4977 - ], - [ - 39.94892, - 9.53285 - ], - [ - 39.94618, - 9.56795 - ], - [ - 39.95267, - 9.59637 - ], - [ - 39.95358, - 9.61452 - ], - [ - 39.96445, - 9.65658 - ], - [ - 39.9755, - 9.68505 - ], - [ - 39.9878, - 9.70559 - ], - [ - 40.00332, - 9.74089 - ], - [ - 40.02234, - 9.77171 - ], - [ - 40.03687, - 9.79567 - ], - [ - 40.05016, - 9.82754 - ], - [ - 40.06799, - 9.86174 - ], - [ - 40.08684, - 9.905 - ], - [ - 40.10347, - 9.94369 - ], - [ - 40.11101, - 9.97888 - ], - [ - 40.11085, - 9.99134 - ], - [ - 40.11272, - 10.02306 - ], - [ - 40.1145, - 10.0627 - ], - [ - 40.11724, - 10.11479 - ], - [ - 40.12473, - 10.15448 - ], - [ - 40.1209, - 10.18499 - ], - [ - 40.11265, - 10.20527 - ], - [ - 40.11115, - 10.23353 - ], - [ - 40.11543, - 10.25507 - ], - [ - 40.11964, - 10.28227 - ], - [ - 40.12152, - 10.31396 - ], - [ - 40.12095, - 10.35807 - ], - [ - 40.11838, - 10.38065 - ], - [ - 40.11443, - 10.42131 - ], - [ - 40.11157, - 10.46537 - ], - [ - 40.11232, - 10.4959 - ], - [ - 40.11643, - 10.53099 - ], - [ - 40.12038, - 10.57849 - ], - [ - 40.12326, - 10.62034 - ], - [ - 40.11833, - 10.64853 - ], - [ - 40.11579, - 10.66883 - ], - [ - 40.11422, - 10.70157 - ], - [ - 40.12061, - 10.73779 - ], - [ - 40.12251, - 10.76718 - ], - [ - 40.10949, - 10.80204 - ], - [ - 40.08856, - 10.83115 - ], - [ - 40.07, - 10.85464 - ], - [ - 40.05833, - 10.8737 - ], - [ - 40.05683, - 10.9019 - ], - [ - 40.06787, - 10.93025 - ], - [ - 40.06992, - 10.94833 - ], - [ - 40.06725, - 10.97877 - ], - [ - 40.06237, - 11.00241 - ], - [ - 40.04727, - 11.02254 - ], - [ - 40.02636, - 11.04938 - ], - [ - 40.00668, - 11.07059 - ], - [ - 39.9972, - 11.09755 - ], - [ - 39.98089, - 11.12218 - ], - [ - 39.97485, - 11.14805 - ], - [ - 39.97682, - 11.17175 - ], - [ - 39.98213, - 11.20226 - ], - [ - 39.99784, - 11.22387 - ], - [ - 40.01602, - 11.23085 - ], - [ - 40.05021, - 11.23576 - ], - [ - 40.08645, - 11.25873 - ], - [ - 40.13878, - 11.274 - ], - [ - 40.20937, - 11.28948 - ], - [ - 40.26065, - 11.29684 - ], - [ - 40.31747, - 11.3178 - ], - [ - 40.40176, - 11.33344 - ], - [ - 40.45988, - 11.34201 - ], - [ - 40.49346, - 11.3424 - ], - [ - 40.49348, - 11.31209 - ], - [ - 40.50372, - 11.26061 - ], - [ - 40.50138, - 11.21705 - ], - [ - 40.50232, - 11.17762 - ], - [ - 40.50381, - 11.16353 - ], - [ - 40.51786, - 11.16075 - ], - [ - 40.55825, - 11.17353 - ], - [ - 40.58166, - 11.18842 - ], - [ - 40.61351, - 11.21143 - ], - [ - 40.64409, - 11.22141 - ], - [ - 40.67813, - 11.22764 - ], - [ - 40.70683, - 11.22814 - ], - [ - 40.74328, - 11.2298 - ], - [ - 40.76379, - 11.2344 - ], - [ - 40.78249, - 11.23039 - ], - [ - 40.79055, - 11.2033 - ], - [ - 40.76572, - 11.19505 - ], - [ - 40.73283, - 11.17686 - ], - [ - 40.69995, - 11.15867 - ], - [ - 40.66023, - 11.13824 - ], - [ - 40.63541, - 11.12567 - ], - [ - 40.59658, - 11.10664 - ], - [ - 40.58588, - 11.10141 - ], - [ - 40.57938, - 11.09949 - ], - [ - 40.5459, - 11.08968 - ], - [ - 40.52109, - 11.08931 - ], - [ - 40.50632, - 11.08315 - ], - [ - 40.48736, - 11.07198 - ], - [ - 40.47619, - 11.063 - ], - [ - 40.46462, - 11.0488 - ], - [ - 40.46118, - 11.04114 - ], - [ - 40.45856, - 11.03168 - ], - [ - 40.45691, - 11.00994 - ], - [ - 40.45699, - 10.99859 - ], - [ - 40.4579, - 10.98544 - ], - [ - 40.4646, - 10.96063 - ], - [ - 40.47523, - 10.93736 - ], - [ - 40.47643, - 10.91547 - ], - [ - 40.47038, - 10.89834 - ], - [ - 40.46427, - 10.88035 - ], - [ - 40.46744, - 10.85922 - ], - [ - 40.47493, - 10.84485 - ], - [ - 40.4857, - 10.82333 - ], - [ - 40.4952, - 10.7975 - ], - [ - 40.5028, - 10.77178 - ], - [ - 40.48984, - 10.71531 - ], - [ - 40.46308, - 10.71458 - ], - [ - 40.43916, - 10.71366 - ], - [ - 40.45189, - 10.69702 - ], - [ - 40.46194, - 10.68231 - ], - [ - 40.46846, - 10.67048 - ], - [ - 40.46658, - 10.65051 - ], - [ - 40.4848, - 10.62124 - ], - [ - 40.49177, - 10.60414 - ], - [ - 40.49606, - 10.58898 - ], - [ - 40.49403, - 10.56727 - ], - [ - 40.48206, - 10.54101 - ], - [ - 40.46755, - 10.50792 - ], - [ - 40.47193, - 10.49362 - ], - [ - 40.48443, - 10.4744 - ], - [ - 40.49977, - 10.45497 - ], - [ - 40.51494, - 10.43382 - ], - [ - 40.52799, - 10.41019 - ], - [ - 40.5341, - 10.38354 - ], - [ - 40.53241, - 10.3653 - ], - [ - 40.52874, - 10.33584 - ], - [ - 40.52531, - 10.30899 - ], - [ - 40.51962, - 10.2884 - ], - [ - 40.52322, - 10.26543 - ], - [ - 40.5247, - 10.25047 - ], - [ - 40.53445, - 10.23233 - ], - [ - 40.54247, - 10.229 - ], - [ - 40.54301, - 10.21674 - ], - [ - 40.54458, - 10.21358 - ], - [ - 40.54523, - 10.20995 - ], - [ - 40.54472, - 10.20545 - ], - [ - 40.54287, - 10.20364 - ], - [ - 40.53919, - 10.20165 - ], - [ - 40.53574, - 10.19898 - ], - [ - 40.53387, - 10.1954 - ], - [ - 40.53473, - 10.19086 - ], - [ - 40.53676, - 10.1888 - ], - [ - 40.53859, - 10.1872 - ], - [ - 40.53875, - 10.18179 - ], - [ - 40.5396, - 10.17682 - ], - [ - 40.54301, - 10.17429 - ], - [ - 40.54687, - 10.17245 - ], - [ - 40.54935, - 10.17015 - ], - [ - 40.55252, - 10.16698 - ], - [ - 40.55592, - 10.164 - ], - [ - 40.55907, - 10.16012 - ], - [ - 40.56199, - 10.15558 - ], - [ - 40.56126, - 10.15152 - ], - [ - 40.55915, - 10.14724 - ], - [ - 40.55727, - 10.14206 - ], - [ - 40.5563, - 10.13645 - ], - [ - 40.55648, - 10.13215 - ], - [ - 40.55873, - 10.12896 - ], - [ - 40.5626, - 10.12801 - ], - [ - 40.56717, - 10.12774 - ], - [ - 40.57172, - 10.12678 - ], - [ - 40.57695, - 10.12356 - ], - [ - 40.58082, - 10.12173 - ], - [ - 40.58536, - 10.12011 - ], - [ - 40.58831, - 10.11849 - ], - [ - 40.59126, - 10.11551 - ], - [ - 40.59373, - 10.11233 - ], - [ - 40.59573, - 10.10736 - ], - [ - 40.59747, - 10.10033 - ], - [ - 40.59971, - 10.09601 - ], - [ - 40.60153, - 10.09554 - ], - [ - 40.60247, - 10.09756 - ], - [ - 40.60316, - 10.09935 - ], - [ - 40.60659, - 10.09909 - ], - [ - 40.6086, - 10.09454 - ], - [ - 40.61083, - 10.08982 - ], - [ - 40.61216, - 10.08595 - ], - [ - 40.61007, - 10.08281 - ], - [ - 40.60911, - 10.07898 - ], - [ - 40.60793, - 10.0747 - ], - [ - 40.60786, - 10.07463 - ], - [ - 40.60561, - 10.07247 - ], - [ - 40.60218, - 10.07135 - ], - [ - 40.59896, - 10.06984 - ], - [ - 40.59754, - 10.0651 - ], - [ - 40.59611, - 10.05948 - ], - [ - 40.59536, - 10.05405 - ], - [ - 40.59531, - 10.04911 - ], - [ - 40.59592, - 10.04365 - ], - [ - 40.59453, - 10.04096 - ], - [ - 40.59249, - 10.04167 - ], - [ - 40.58952, - 10.04215 - ], - [ - 40.58813, - 10.04013 - ], - [ - 40.58651, - 10.03858 - ], - [ - 40.58331, - 10.03769 - ], - [ - 40.58101, - 10.03571 - ], - [ - 40.57936, - 10.03233 - ], - [ - 40.57637, - 10.03056 - ], - [ - 40.57181, - 10.0306 - ], - [ - 40.56883, - 10.02973 - ], - [ - 40.56653, - 10.0284 - ], - [ - 40.56219, - 10.02866 - ], - [ - 40.55968, - 10.02803 - ], - [ - 40.55964, - 10.02509 - ], - [ - 40.55938, - 10.02169 - ], - [ - 40.55916, - 10.0213 - ], - [ - 40.5596, - 9.9898 - ], - [ - 40.54869, - 9.95005 - ], - [ - 40.5434, - 9.91715 - ], - [ - 40.53921, - 9.88879 - ], - [ - 40.53167, - 9.85359 - ], - [ - 40.531, - 9.81733 - ], - [ - 40.53253, - 9.78677 - ], - [ - 40.53628, - 9.76189 - ], - [ - 40.5377, - 9.74038 - ], - [ - 40.52991, - 9.72442 - ], - [ - 40.5154, - 9.69818 - ], - [ - 40.50423, - 9.67879 - ], - [ - 40.48082, - 9.63545 - ], - [ - 40.46516, - 9.61033 - ], - [ - 40.44736, - 9.57385 - ], - [ - 40.44316, - 9.54545 - ], - [ - 40.44379, - 9.49671 - ], - [ - 40.4474, - 9.48201 - ], - [ - 40.44633, - 9.47633 - ], - [ - 40.44316, - 9.45702 - ], - [ - 40.43436, - 9.43083 - ], - [ - 40.4176, - 9.40227 - ], - [ - 40.40419, - 9.37943 - ], - [ - 40.3873, - 9.36109 - ], - [ - 40.37375, - 9.34958 - ], - [ - 40.35914, - 9.33126 - ], - [ - 40.34458, - 9.30954 - ], - [ - 40.32889, - 9.28666 - ], - [ - 40.31209, - 9.26151 - ], - [ - 40.30444, - 9.23531 - ], - [ - 40.29669, - 9.21593 - ], - [ - 40.29023, - 9.18522 - ], - [ - 40.28486, - 9.15905 - ], - [ - 40.28169, - 9.13971 - ], - [ - 40.28097, - 9.10679 - ], - [ - 40.28254, - 9.07388 - ], - [ - 40.28165, - 9.05344 - ], - [ - 40.27744, - 9.02614 - ], - [ - 40.26986, - 8.99426 - ], - [ - 40.25988, - 8.97143 - ], - [ - 40.25452, - 8.94411 - ], - [ - 40.2523, - 8.93954 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf00c776", - "_rev":"1-e5895c63f306a8d417801171daee69f3", - "type":"Feature", - "properties":{ - "GISNAME":"Awash West", - "Species":"Greater and Lesser Kudus, Oryx" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 37.66553, - 5.46079 - ], - [ - 37.66345, - 5.46087 - ], - [ - 37.65548, - 5.46096 - ], - [ - 37.64604, - 5.47542 - ], - [ - 37.64467, - 5.49777 - ], - [ - 37.63856, - 5.52495 - ], - [ - 37.63249, - 5.55532 - ], - [ - 37.62637, - 5.5825 - ], - [ - 37.62669, - 5.61439 - ], - [ - 37.62543, - 5.64629 - ], - [ - 37.6273, - 5.67338 - ], - [ - 37.6354, - 5.68604 - ], - [ - 37.66117, - 5.70966 - ], - [ - 37.67722, - 5.71904 - ], - [ - 37.69483, - 5.72362 - ], - [ - 37.72355, - 5.72329 - ], - [ - 37.74581, - 5.71506 - ], - [ - 37.76484, - 5.70369 - ], - [ - 37.76934, - 5.67494 - ], - [ - 37.77856, - 5.63975 - ], - [ - 37.77979, - 5.60306 - ], - [ - 37.77944, - 5.56798 - ], - [ - 37.76801, - 5.5426 - ], - [ - 37.74701, - 5.51732 - ], - [ - 37.73245, - 5.49835 - ], - [ - 37.72117, - 5.48732 - ], - [ - 37.70177, - 5.46202 - ], - [ - 37.66553, - 5.46079 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf00d712", - "_rev":"1-088f5fe1d2b1afb515b25f59125ac34f", - "type":"Feature", - "properties":{ - "GISNAME":"Segen Valley" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 36.339573, - 5.419081 - ], - [ - 36.3561, - 5.31642 - ], - [ - 36.35417, - 5.28892 - ], - [ - 36.34683, - 5.23731 - ], - [ - 36.33918, - 5.21089 - ], - [ - 36.33043, - 5.18101 - ], - [ - 36.31366, - 5.15333 - ], - [ - 36.33099, - 5.1375 - ], - [ - 36.34944, - 5.12283 - ], - [ - 36.3688, - 5.1265 - ], - [ - 36.40516, - 5.14067 - ], - [ - 36.44735, - 5.14575 - ], - [ - 36.47019, - 5.14488 - ], - [ - 36.48761, - 5.12218 - ], - [ - 36.49244, - 5.10163 - ], - [ - 36.51896, - 5.08133 - ], - [ - 36.55104, - 5.07255 - ], - [ - 36.57536, - 5.04535 - ], - [ - 36.58365, - 5.02254 - ], - [ - 36.6045, - 4.99988 - ], - [ - 36.61973, - 4.96913 - ], - [ - 36.64755, - 4.93624 - ], - [ - 36.65121, - 4.91796 - ], - [ - 36.65255, - 4.90308 - ], - [ - 36.652, - 4.85611 - ], - [ - 36.64109, - 4.81588 - ], - [ - 36.62785, - 4.7802 - ], - [ - 36.61245, - 4.73418 - ], - [ - 36.62199, - 4.70221 - ], - [ - 36.62606, - 4.65184 - ], - [ - 36.63018, - 4.59688 - ], - [ - 36.63284, - 4.56826 - ], - [ - 36.6506, - 4.51804 - ], - [ - 36.66014, - 4.4872 - ], - [ - 36.67708, - 4.4435 - ], - [ - 36.65915, - 4.44329 - ], - [ - 36.64421, - 4.45656 - ], - [ - 36.52372, - 4.44912 - ], - [ - 36.26145, - 4.45223 - ], - [ - 36.24426, - 4.46278 - ], - [ - 36.23008, - 4.45282 - ], - [ - 36.21268, - 4.45252 - ], - [ - 36.21212, - 4.45477 - ], - [ - 36.21167, - 4.45933 - ], - [ - 36.21144, - 4.46245 - ], - [ - 36.21167, - 4.46628 - ], - [ - 36.21167, - 4.47022 - ], - [ - 36.21189, - 4.47425 - ], - [ - 36.21234, - 4.47784 - ], - [ - 36.21325, - 4.48213 - ], - [ - 36.2146, - 4.4864 - ], - [ - 36.2164, - 4.49029 - ], - [ - 36.21821, - 4.49253 - ], - [ - 36.2198, - 4.49505 - ], - [ - 36.22069, - 4.49637 - ], - [ - 36.22272, - 4.49958 - ], - [ - 36.22317, - 4.5004 - ], - [ - 36.22362, - 4.50161 - ], - [ - 36.2243, - 4.50361 - ], - [ - 36.22543, - 4.50929 - ], - [ - 36.22475, - 4.51356 - ], - [ - 36.22227, - 4.51789 - ], - [ - 36.21933, - 4.521 - ], - [ - 36.21639, - 4.52397 - ], - [ - 36.21346, - 4.52829 - ], - [ - 36.21143, - 4.53256 - ], - [ - 36.21053, - 4.5346 - ], - [ - 36.21008, - 4.53528 - ], - [ - 36.20963, - 4.5366 - ], - [ - 36.20939, - 4.53757 - ], - [ - 36.20758, - 4.54248 - ], - [ - 36.20623, - 4.5484 - ], - [ - 36.20555, - 4.5536 - ], - [ - 36.20398, - 4.55559 - ], - [ - 36.20126, - 4.55559 - ], - [ - 36.19765, - 4.55443 - ], - [ - 36.19449, - 4.55244 - ], - [ - 36.19291, - 4.55219 - ], - [ - 36.19268, - 4.55244 - ], - [ - 36.19223, - 4.55424 - ], - [ - 36.19201, - 4.55763 - ], - [ - 36.192, - 4.56147 - ], - [ - 36.19178, - 4.56623 - ], - [ - 36.19087, - 4.57187 - ], - [ - 36.18997, - 4.57663 - ], - [ - 36.18929, - 4.57819 - ], - [ - 36.18568, - 4.58051 - ], - [ - 36.18003, - 4.58294 - ], - [ - 36.17529, - 4.58863 - ], - [ - 36.17553, - 4.59087 - ], - [ - 36.17777, - 4.59218 - ], - [ - 36.18161, - 4.59155 - ], - [ - 36.18409, - 4.59198 - ], - [ - 36.18793, - 4.59339 - ], - [ - 36.19199, - 4.59183 - ], - [ - 36.19425, - 4.5895 - ], - [ - 36.19606, - 4.5913 - ], - [ - 36.19764, - 4.59471 - ], - [ - 36.20036, - 4.59538 - ], - [ - 36.20306, - 4.5945 - ], - [ - 36.20486, - 4.59471 - ], - [ - 36.20667, - 4.59519 - ], - [ - 36.20667, - 4.59722 - ], - [ - 36.20621, - 4.59965 - ], - [ - 36.20509, - 4.60262 - ], - [ - 36.20193, - 4.60869 - ], - [ - 36.19944, - 4.61233 - ], - [ - 36.19583, - 4.61889 - ], - [ - 36.19312, - 4.62433 - ], - [ - 36.19289, - 4.62933 - ], - [ - 36.19267, - 4.63496 - ], - [ - 36.19064, - 4.63963 - ], - [ - 36.18679, - 4.6438 - ], - [ - 36.18047, - 4.64579 - ], - [ - 36.17505, - 4.64759 - ], - [ - 36.16872, - 4.64915 - ], - [ - 36.16285, - 4.64983 - ], - [ - 36.15811, - 4.64983 - ], - [ - 36.15224, - 4.65002 - ], - [ - 36.14795, - 4.64871 - ], - [ - 36.14547, - 4.64551 - ], - [ - 36.14277, - 4.64098 - ], - [ - 36.13938, - 4.63536 - ], - [ - 36.13848, - 4.63151 - ], - [ - 36.14029, - 4.62768 - ], - [ - 36.14231, - 4.62403 - ], - [ - 36.14503, - 4.61946 - ], - [ - 36.14729, - 4.61665 - ], - [ - 36.15135, - 4.61665 - ], - [ - 36.15564, - 4.61729 - ], - [ - 36.15948, - 4.61592 - ], - [ - 36.16174, - 4.61233 - ], - [ - 36.16332, - 4.60713 - ], - [ - 36.16196, - 4.60393 - ], - [ - 36.15948, - 4.60286 - ], - [ - 36.15656, - 4.60305 - ], - [ - 36.15316, - 4.603 - ], - [ - 36.14865, - 4.60354 - ], - [ - 36.14231, - 4.6064 - ], - [ - 36.13555, - 4.60888 - ], - [ - 36.12787, - 4.61184 - ], - [ - 36.1211, - 4.61408 - ], - [ - 36.11501, - 4.6152 - ], - [ - 36.1062, - 4.61748 - ], - [ - 36.10056, - 4.62112 - ], - [ - 36.09739, - 4.62403 - ], - [ - 36.09356, - 4.62967 - ], - [ - 36.08881, - 4.63492 - ], - [ - 36.0861, - 4.63423 - ], - [ - 36.08316, - 4.62856 - ], - [ - 36.08046, - 4.6238 - ], - [ - 36.07752, - 4.62088 - ], - [ - 36.07391, - 4.6202 - ], - [ - 36.06668, - 4.62287 - ], - [ - 36.06127, - 4.62336 - ], - [ - 36.05721, - 4.62151 - ], - [ - 36.05247, - 4.61607 - ], - [ - 36.05202, - 4.61135 - ], - [ - 36.05428, - 4.60956 - ], - [ - 36.05902, - 4.6084 - ], - [ - 36.05993, - 4.60524 - ], - [ - 36.057, - 4.59955 - ], - [ - 36.05338, - 4.59596 - ], - [ - 36.04954, - 4.59324 - ], - [ - 36.04683, - 4.593 - ], - [ - 36.0448, - 4.59416 - ], - [ - 36.04254, - 4.59397 - ], - [ - 36.04186, - 4.59169 - ], - [ - 36.04164, - 4.5896 - ], - [ - 36.04232, - 4.58557 - ], - [ - 36.04368, - 4.58013 - ], - [ - 36.04323, - 4.57628 - ], - [ - 36.04165, - 4.57294 - ], - [ - 36.04391, - 4.56701 - ], - [ - 36.04617, - 4.56298 - ], - [ - 36.04933, - 4.55638 - ], - [ - 36.05137, - 4.54986 - ], - [ - 36.0534, - 4.54194 - ], - [ - 36.05453, - 4.53494 - ], - [ - 36.05679, - 4.52863 - ], - [ - 36.0586, - 4.52391 - ], - [ - 36.05702, - 4.52114 - ], - [ - 36.05431, - 4.51823 - ], - [ - 36.05161, - 4.51322 - ], - [ - 36.04868, - 4.50958 - ], - [ - 36.04439, - 4.50832 - ], - [ - 36.04416, - 4.51007 - ], - [ - 36.04574, - 4.51639 - ], - [ - 36.04686, - 4.52269 - ], - [ - 36.04753, - 4.52654 - ], - [ - 36.04686, - 4.53013 - ], - [ - 36.04596, - 4.53247 - ], - [ - 36.04346, - 4.53655 - ], - [ - 36.04166, - 4.54015 - ], - [ - 36.04053, - 4.54354 - ], - [ - 36.03986, - 4.54671 - ], - [ - 36.03896, - 4.54981 - ], - [ - 36.03782, - 4.55301 - ], - [ - 36.03714, - 4.5555 - ], - [ - 36.03601, - 4.55759 - ], - [ - 36.03466, - 4.5591 - ], - [ - 36.03263, - 4.56045 - ], - [ - 36.02833, - 4.56361 - ], - [ - 36.02608, - 4.56609 - ], - [ - 36.02654, - 4.57002 - ], - [ - 36.02742, - 4.57492 - ], - [ - 36.02878, - 4.57833 - ], - [ - 36.02945, - 4.58037 - ], - [ - 36.029, - 4.5808 - ], - [ - 36.02697, - 4.58129 - ], - [ - 36.02449, - 4.58168 - ], - [ - 36.02449, - 4.58353 - ], - [ - 36.02562, - 4.586 - ], - [ - 36.02719, - 4.5896 - ], - [ - 36.02764, - 4.59164 - ], - [ - 36.02651, - 4.59305 - ], - [ - 36.02538, - 4.59436 - ], - [ - 36.0238, - 4.59596 - ], - [ - 36.02177, - 4.598 - ], - [ - 36.01974, - 4.60164 - ], - [ - 36.01996, - 4.60612 - ], - [ - 36.02085, - 4.60864 - ], - [ - 36.022, - 4.61219 - ], - [ - 36.02131, - 4.61451 - ], - [ - 36.01995, - 4.61719 - ], - [ - 36.0204, - 4.61995 - ], - [ - 36.02198, - 4.62127 - ], - [ - 36.02379, - 4.62219 - ], - [ - 36.02605, - 4.6235 - ], - [ - 36.02718, - 4.62627 - ], - [ - 36.02583, - 4.62739 - ], - [ - 36.02379, - 4.62782 - ], - [ - 36.01971, - 4.62763 - ], - [ - 36.01611, - 4.62642 - ], - [ - 36.01205, - 4.62442 - ], - [ - 36.00912, - 4.6219 - ], - [ - 36.00799, - 4.62011 - ], - [ - 36.00641, - 4.61699 - ], - [ - 36.00483, - 4.61359 - ], - [ - 36.00393, - 4.60975 - ], - [ - 36.00438, - 4.60635 - ], - [ - 36.00529, - 4.60359 - ], - [ - 36.00484, - 4.60271 - ], - [ - 36.00257, - 4.60228 - ], - [ - 36.00122, - 4.60247 - ], - [ - 35.99987, - 4.60316 - ], - [ - 35.99852, - 4.60344 - ], - [ - 35.99829, - 4.60344 - ], - [ - 35.9985, - 4.60407 - ], - [ - 35.99829, - 4.60407 - ], - [ - 35.99739, - 4.60432 - ], - [ - 35.99603, - 4.60451 - ], - [ - 35.99355, - 4.605 - ], - [ - 35.99136, - 4.60542 - ], - [ - 35.99121, - 4.60616 - ], - [ - 35.989742, - 4.611369 - ], - [ - 35.98917, - 4.6134 - ], - [ - 35.98556, - 4.61972 - ], - [ - 35.98104, - 4.62336 - ], - [ - 35.9772, - 4.62696 - ], - [ - 35.97449, - 4.63123 - ], - [ - 35.97403, - 4.64502 - ], - [ - 35.97493, - 4.65565 - ], - [ - 35.97673, - 4.66449 - ], - [ - 35.97898, - 4.671 - ], - [ - 35.98508, - 4.67688 - ], - [ - 35.98779, - 4.68144 - ], - [ - 35.990567, - 4.685971 - ], - [ - 35.99094, - 4.68658 - ], - [ - 35.99185, - 4.68819 - ], - [ - 35.99264, - 4.68955 - ], - [ - 35.99252, - 4.68955 - ], - [ - 35.99252, - 4.68979 - ], - [ - 35.992598, - 4.691387 - ], - [ - 35.99275, - 4.6945 - ], - [ - 35.99252, - 4.70087 - ], - [ - 35.99252, - 4.70941 - ], - [ - 35.99341, - 4.71625 - ], - [ - 35.99454, - 4.72072 - ], - [ - 35.99657, - 4.72552 - ], - [ - 35.997067, - 4.726536 - ], - [ - 36.00085, - 4.73427 - ], - [ - 36.00311, - 4.74106 - ], - [ - 36.00604, - 4.75466 - ], - [ - 36.00807, - 4.76145 - ], - [ - 36.01167, - 4.76936 - ], - [ - 36.01574, - 4.77815 - ], - [ - 36.01934, - 4.78679 - ], - [ - 36.02318, - 4.79311 - ], - [ - 36.02859, - 4.79558 - ], - [ - 36.03424, - 4.79466 - ], - [ - 36.03763, - 4.79039 - ], - [ - 36.03921, - 4.79063 - ], - [ - 36.0435, - 4.79552 - ], - [ - 36.046341, - 4.803551 - ], - [ - 36.04778, - 4.80762 - ], - [ - 36.047987, - 4.808834 - ], - [ - 36.04958, - 4.81819 - ], - [ - 36.0505, - 4.820875 - ], - [ - 36.05206, - 4.82543 - ], - [ - 36.052972, - 4.82582 - ], - [ - 36.0584, - 4.82814 - ], - [ - 36.06674, - 4.82955 - ], - [ - 36.07238, - 4.83309 - ], - [ - 36.07487, - 4.83606 - ], - [ - 36.07509, - 4.83809 - ], - [ - 36.07509, - 4.83969 - ], - [ - 36.07498, - 4.84003 - ], - [ - 36.07441, - 4.84033 - ], - [ - 36.07419, - 4.84149 - ], - [ - 36.073951, - 4.842396 - ], - [ - 36.07328, - 4.84494 - ], - [ - 36.0717, - 4.84717 - ], - [ - 36.06854, - 4.84934 - ], - [ - 36.06831, - 4.85274 - ], - [ - 36.073747, - 4.852935 - ], - [ - 36.07668, - 4.85304 - ], - [ - 36.08615, - 4.85397 - ], - [ - 36.09066, - 4.85532 - ], - [ - 36.09428, - 4.85939 - ], - [ - 36.093453, - 4.864335 - ], - [ - 36.09337, - 4.86483 - ], - [ - 36.09224, - 4.87293 - ], - [ - 36.093123, - 4.877378 - ], - [ - 36.09381, - 4.88084 - ], - [ - 36.09629, - 4.88176 - ], - [ - 36.09991, - 4.88196 - ], - [ - 36.10285, - 4.88428 - ], - [ - 36.09901, - 4.88768 - ], - [ - 36.096016, - 4.889975 - ], - [ - 36.09584, - 4.89011 - ], - [ - 36.09629, - 4.89413 - ], - [ - 36.09697, - 4.89938 - ], - [ - 36.09448, - 4.90544 - ], - [ - 36.09607, - 4.91185 - ], - [ - 36.09945, - 4.91679 - ], - [ - 36.09832, - 4.92174 - ], - [ - 36.100538, - 4.924913 - ], - [ - 36.10148, - 4.92626 - ], - [ - 36.10532, - 4.93033 - ], - [ - 36.1078, - 4.93532 - ], - [ - 36.1139, - 4.93843 - ], - [ - 36.11525, - 4.94613 - ], - [ - 36.11502, - 4.95181 - ], - [ - 36.111119, - 4.950999 - ], - [ - 36.10757, - 4.95026 - ], - [ - 36.1035, - 4.94683 - ], - [ - 36.09854, - 4.94275 - ], - [ - 36.09357, - 4.9425 - ], - [ - 36.08792, - 4.94367 - ], - [ - 36.08589, - 4.94687 - ], - [ - 36.08995, - 4.9509 - ], - [ - 36.09402, - 4.95318 - ], - [ - 36.09785, - 4.95837 - ], - [ - 36.10079, - 4.96627 - ], - [ - 36.101137, - 4.971628 - ], - [ - 36.10123, - 4.97306 - ], - [ - 36.100203, - 4.973485 - ], - [ - 36.09898, - 4.97399 - ], - [ - 36.09424, - 4.97195 - ], - [ - 36.09175, - 4.97961 - ], - [ - 36.091533, - 4.989456 - ], - [ - 36.09152, - 4.99004 - ], - [ - 36.08903, - 4.99853 - ], - [ - 36.08655, - 5.00222 - ], - [ - 36.08226, - 5.00328 - ], - [ - 36.07932, - 5.00086 - ], - [ - 36.07977, - 4.99679 - ], - [ - 36.081129, - 4.992721 - ], - [ - 36.08136, - 4.99203 - ], - [ - 36.0791, - 4.98815 - ], - [ - 36.0791, - 4.98121 - ], - [ - 36.08159, - 4.97238 - ], - [ - 36.08159, - 4.96671 - ], - [ - 36.07911, - 4.96812 - ], - [ - 36.07483, - 4.9737 - ], - [ - 36.07097, - 4.97481 - ], - [ - 36.06443, - 4.97413 - ], - [ - 36.06036, - 4.97598 - ], - [ - 36.05426, - 4.98092 - ], - [ - 36.04884, - 4.98659 - ], - [ - 36.045, - 4.99067 - ], - [ - 36.04116, - 4.99382 - ], - [ - 36.03844, - 4.99649 - ], - [ - 36.03732, - 4.99969 - ], - [ - 36.04049, - 5.00265 - ], - [ - 36.04499, - 5.00191 - ], - [ - 36.04838, - 4.99926 - ], - [ - 36.05313, - 4.99585 - ], - [ - 36.053586, - 4.996032 - ], - [ - 36.05764, - 4.99765 - ], - [ - 36.05651, - 5.00265 - ], - [ - 36.05289, - 5.0074 - ], - [ - 36.052102, - 5.008968 - ], - [ - 36.05177, - 5.00963 - ], - [ - 36.052327, - 5.010135 - ], - [ - 36.05402, - 5.01167 - ], - [ - 36.05989, - 5.01259 - ], - [ - 36.06464, - 5.01507 - ], - [ - 36.06802, - 5.01759 - ], - [ - 36.07096, - 5.02136 - ], - [ - 36.07344, - 5.02728 - ], - [ - 36.07434, - 5.03451 - ], - [ - 36.07231, - 5.03451 - ], - [ - 36.071002, - 5.034002 - ], - [ - 36.06644, - 5.03223 - ], - [ - 36.06328, - 5.03296 - ], - [ - 36.06102, - 5.03514 - ], - [ - 36.06395, - 5.03878 - ], - [ - 36.06689, - 5.04304 - ], - [ - 36.06778, - 5.04926 - ], - [ - 36.067677, - 5.049538 - ], - [ - 36.0662, - 5.05352 - ], - [ - 36.06101, - 5.05487 - ], - [ - 36.058488, - 5.052706 - ], - [ - 36.05333, - 5.04828 - ], - [ - 36.04927, - 5.0429 - ], - [ - 36.04498, - 5.04169 - ], - [ - 36.0409, - 5.04488 - ], - [ - 36.03843, - 5.05051 - ], - [ - 36.038587, - 5.050963 - ], - [ - 36.04023, - 5.0557 - ], - [ - 36.0443, - 5.05841 - ], - [ - 36.04858, - 5.06118 - ], - [ - 36.0522, - 5.06301 - ], - [ - 36.05942, - 5.067 - ], - [ - 36.06191, - 5.06908 - ], - [ - 36.06258, - 5.07063 - ], - [ - 36.06258, - 5.07204 - ], - [ - 36.06145, - 5.07451 - ], - [ - 36.05829, - 5.07834 - ], - [ - 36.05626, - 5.08309 - ], - [ - 36.0558, - 5.09328 - ], - [ - 36.055756, - 5.093577 - ], - [ - 36.05467, - 5.10099 - ], - [ - 36.05669, - 5.10927 - ], - [ - 36.06009, - 5.11087 - ], - [ - 36.06054, - 5.10549 - ], - [ - 36.05873, - 5.09939 - ], - [ - 36.05888, - 5.098631 - ], - [ - 36.05941, - 5.09594 - ], - [ - 36.06302, - 5.09482 - ], - [ - 36.06957, - 5.09648 - ], - [ - 36.07477, - 5.09648 - ], - [ - 36.08087, - 5.09376 - ], - [ - 36.08674, - 5.09216 - ], - [ - 36.09081, - 5.094 - ], - [ - 36.09306, - 5.09759 - ], - [ - 36.09058, - 5.10369 - ], - [ - 36.08764, - 5.10612 - ], - [ - 36.08245, - 5.10346 - ], - [ - 36.07838, - 5.10258 - ], - [ - 36.07409, - 5.10413 - ], - [ - 36.07228, - 5.10753 - ], - [ - 36.0725, - 5.11204 - ], - [ - 36.07544, - 5.1163 - ], - [ - 36.07928, - 5.1195 - ], - [ - 36.08154, - 5.12338 - ], - [ - 36.07792, - 5.13147 - ], - [ - 36.07317, - 5.13507 - ], - [ - 36.070745, - 5.134815 - ], - [ - 36.06662, - 5.13438 - ], - [ - 36.06324, - 5.13618 - ], - [ - 36.06256, - 5.13822 - ], - [ - 36.06527, - 5.1434 - ], - [ - 36.06978, - 5.14709 - ], - [ - 36.07113, - 5.14931 - ], - [ - 36.06865, - 5.15542 - ], - [ - 36.06435, - 5.16492 - ], - [ - 36.06277, - 5.17195 - ], - [ - 36.06525, - 5.17646 - ], - [ - 36.07158, - 5.17447 - ], - [ - 36.07587, - 5.16811 - ], - [ - 36.07858, - 5.16583 - ], - [ - 36.08197, - 5.16851 - ], - [ - 36.08537, - 5.17282 - ], - [ - 36.08784, - 5.1735 - ], - [ - 36.08965, - 5.17006 - ], - [ - 36.08717, - 5.164 - ], - [ - 36.087778, - 5.162666 - ], - [ - 36.0883, - 5.16152 - ], - [ - 36.09372, - 5.15954 - ], - [ - 36.10004, - 5.15818 - ], - [ - 36.10705, - 5.15813 - ], - [ - 36.11089, - 5.16133 - ], - [ - 36.111179, - 5.16343 - ], - [ - 36.11179, - 5.16787 - ], - [ - 36.11585, - 5.1704 - ], - [ - 36.11992, - 5.16851 - ], - [ - 36.12082, - 5.16182 - ], - [ - 36.120714, - 5.161523 - ], - [ - 36.12016, - 5.15997 - ], - [ - 36.12196, - 5.15818 - ], - [ - 36.12693, - 5.15363 - ], - [ - 36.13076, - 5.14756 - ], - [ - 36.13438, - 5.14485 - ], - [ - 36.14138, - 5.14549 - ], - [ - 36.14545, - 5.14756 - ], - [ - 36.14997, - 5.14374 - ], - [ - 36.15788, - 5.14035 - ], - [ - 36.16307, - 5.14122 - ], - [ - 36.16555, - 5.14621 - ], - [ - 36.16307, - 5.15435 - ], - [ - 36.161473, - 5.159536 - ], - [ - 36.16035, - 5.16318 - ], - [ - 36.16148, - 5.17064 - ], - [ - 36.16803, - 5.17238 - ], - [ - 36.16961, - 5.16971 - ], - [ - 36.170642, - 5.161996 - ], - [ - 36.17097, - 5.15954 - ], - [ - 36.17888, - 5.15571 - ], - [ - 36.1852, - 5.15391 - ], - [ - 36.18927, - 5.15372 - ], - [ - 36.1904, - 5.15842 - ], - [ - 36.1852, - 5.16724 - ], - [ - 36.183012, - 5.169662 - ], - [ - 36.1809, - 5.172 - ], - [ - 36.17865, - 5.1749 - ], - [ - 36.18452, - 5.18576 - ], - [ - 36.19174, - 5.19434 - ], - [ - 36.196668, - 5.19263 - ], - [ - 36.19762, - 5.1923 - ], - [ - 36.20281, - 5.18828 - ], - [ - 36.21027, - 5.18964 - ], - [ - 36.21523, - 5.19638 - ], - [ - 36.2141, - 5.20364 - ], - [ - 36.20417, - 5.20679 - ], - [ - 36.200678, - 5.208522 - ], - [ - 36.19558, - 5.21105 - ], - [ - 36.19332, - 5.21851 - ], - [ - 36.19648, - 5.23407 - ], - [ - 36.19986, - 5.24773 - ], - [ - 36.200017, - 5.249501 - ], - [ - 36.20054, - 5.25538 - ], - [ - 36.20054, - 5.25786 - ], - [ - 36.20008, - 5.25936 - ], - [ - 36.19896, - 5.26193 - ], - [ - 36.198345, - 5.262727 - ], - [ - 36.19579, - 5.26604 - ], - [ - 36.19196, - 5.26934 - ], - [ - 36.18631, - 5.27167 - ], - [ - 36.18066, - 5.27205 - ], - [ - 36.17388, - 5.27186 - ], - [ - 36.16959, - 5.27477 - ], - [ - 36.1689, - 5.27932 - ], - [ - 36.17207, - 5.28542 - ], - [ - 36.17839, - 5.28653 - ], - [ - 36.1854, - 5.28388 - ], - [ - 36.19196, - 5.28159 - ], - [ - 36.197711, - 5.27871 - ], - [ - 36.19873, - 5.2782 - ], - [ - 36.20392, - 5.27414 - ], - [ - 36.20663, - 5.27282 - ], - [ - 36.20868, - 5.27326 - ], - [ - 36.20731, - 5.28005 - ], - [ - 36.20731, - 5.28029 - ], - [ - 36.20708, - 5.28048 - ], - [ - 36.20686, - 5.28116 - ], - [ - 36.20686, - 5.28188 - ], - [ - 36.20663, - 5.28412 - ], - [ - 36.20889, - 5.29017 - ], - [ - 36.21138, - 5.29787 - ], - [ - 36.21395, - 5.30783 - ], - [ - 36.21426, - 5.3074 - ], - [ - 36.200549, - 5.362983 - ], - [ - 36.218051, - 5.413326 - ], - [ - 36.234086, - 5.41424 - ], - [ - 36.234233, - 5.415032 - ], - [ - 36.242323, - 5.414709 - ], - [ - 36.259449, - 5.415684 - ], - [ - 36.339573, - 5.419081 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf00dbf8", - "_rev":"1-0cb9db13db7cbe82da5961a578c4e80a", - "type":"Feature", - "properties":{ - "GISNAME":"Murle" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 37.04147, - 4.37522 - ], - [ - 37.0437, - 4.40349 - ], - [ - 37.04219, - 4.43213 - ], - [ - 37.04526, - 4.46083 - ], - [ - 37.05402, - 4.48959 - ], - [ - 37.05827, - 4.51486 - ], - [ - 37.06366, - 4.54014 - ], - [ - 37.07248, - 4.56431 - ], - [ - 37.09253, - 4.60352 - ], - [ - 37.10242, - 4.63343 - ], - [ - 37.10887, - 4.6656 - ], - [ - 37.10835, - 4.70684 - ], - [ - 37.09888, - 4.73194 - ], - [ - 37.09058, - 4.75591 - ], - [ - 37.09009, - 4.79486 - ], - [ - 37.09437, - 4.81782 - ], - [ - 37.08144, - 4.84631 - ], - [ - 37.06742, - 4.87135 - ], - [ - 37.05904, - 4.90218 - ], - [ - 37.05532, - 4.92505 - ], - [ - 37.05369, - 4.96283 - ], - [ - 37.05227, - 4.98458 - ], - [ - 37.0486, - 5.00401 - ], - [ - 37.04835, - 5.02348 - ], - [ - 37.03101, - 5.04045 - ], - [ - 37.01573, - 5.07463 - ], - [ - 37.01318, - 5.09521 - ], - [ - 37.01981, - 5.11247 - ], - [ - 37.0321, - 5.13323 - ], - [ - 37.03189, - 5.1504 - ], - [ - 37.0202, - 5.17088 - ], - [ - 37.01208, - 5.18109 - ], - [ - 37.00156, - 5.20043 - ], - [ - 36.99324, - 5.22552 - ], - [ - 36.9907, - 5.2461 - ], - [ - 36.99035, - 5.27357 - ], - [ - 36.99124, - 5.29305 - ], - [ - 36.99217, - 5.31023 - ], - [ - 36.98851, - 5.32851 - ], - [ - 37.01278, - 5.3059 - ], - [ - 37.02775, - 5.29577 - ], - [ - 37.0449, - 5.29368 - ], - [ - 37.08852, - 5.27588 - ], - [ - 37.11728, - 5.25905 - ], - [ - 37.1425, - 5.25134 - ], - [ - 37.17456, - 5.2437 - ], - [ - 37.19867, - 5.23368 - ], - [ - 37.23996, - 5.21929 - ], - [ - 37.27321, - 5.20823 - ], - [ - 37.303, - 5.20057 - ], - [ - 37.34208, - 5.17928 - ], - [ - 37.37083, - 5.16359 - ], - [ - 37.39506, - 5.14441 - ], - [ - 37.4363, - 5.13345 - ], - [ - 37.47629, - 5.13163 - ], - [ - 37.51267, - 5.14352 - ], - [ - 37.55133, - 5.15657 - ], - [ - 37.59109, - 5.17193 - ], - [ - 37.6116, - 5.17561 - ], - [ - 37.62545, - 5.16432 - ], - [ - 37.65312, - 5.14289 - ], - [ - 37.67731, - 5.126 - ], - [ - 37.69815, - 5.10449 - ], - [ - 37.72699, - 5.08078 - ], - [ - 37.75931, - 5.05368 - ], - [ - 37.78691, - 5.03797 - ], - [ - 37.8215, - 5.01204 - ], - [ - 37.86058, - 4.99189 - ], - [ - 37.89391, - 4.97396 - ], - [ - 37.92835, - 4.95948 - ], - [ - 37.97424, - 4.94284 - ], - [ - 38.01347, - 4.93396 - ], - [ - 38.02234, - 4.93195 - ], - [ - 38.06008, - 4.92667 - ], - [ - 38.1001, - 4.92257 - ], - [ - 38.13662, - 4.91589 - ], - [ - 38.1413, - 4.91504 - ], - [ - 38.19053, - 4.90531 - ], - [ - 38.23866, - 4.89099 - ], - [ - 38.27647, - 4.88113 - ], - [ - 38.29949, - 4.86651 - ], - [ - 38.32151, - 4.84042 - ], - [ - 38.33784, - 4.81426 - ], - [ - 38.34264, - 4.79599 - ], - [ - 38.35, - 4.78401 - ], - [ - 38.35019, - 4.783 - ], - [ - 38.3553, - 4.76877 - ], - [ - 38.35674, - 4.75639 - ], - [ - 38.36013, - 4.7466 - ], - [ - 38.36916, - 4.73671 - ], - [ - 38.37291, - 4.73663 - ], - [ - 38.37944, - 4.73562 - ], - [ - 38.40005, - 4.7352 - ], - [ - 38.43091, - 4.7328 - ], - [ - 38.45328, - 4.72881 - ], - [ - 38.45981, - 4.7278 - ], - [ - 38.45415, - 4.59468 - ], - [ - 38.76433, - 4.59024 - ], - [ - 38.76473, - 4.60003 - ], - [ - 38.7912, - 4.62943 - ], - [ - 38.8172, - 4.65037 - ], - [ - 38.84438, - 4.66788 - ], - [ - 38.8762, - 4.67972 - ], - [ - 38.90241, - 4.68347 - ], - [ - 38.95956, - 4.67956 - ], - [ - 39.00539, - 4.66636 - ], - [ - 39.02944, - 4.66091 - ], - [ - 39.06375, - 4.65674 - ], - [ - 39.10723, - 4.64923 - ], - [ - 39.13924, - 4.64617 - ], - [ - 39.17456, - 4.65232 - ], - [ - 39.22453, - 4.67354 - ], - [ - 39.26335, - 4.67286 - ], - [ - 39.28961, - 4.67317 - ], - [ - 39.31133, - 4.67114 - ], - [ - 39.34225, - 4.66463 - ], - [ - 39.35486, - 4.66019 - ], - [ - 39.39248, - 4.66523 - ], - [ - 39.41402, - 4.67694 - ], - [ - 39.43898, - 4.68984 - ], - [ - 39.45825, - 4.70039 - ], - [ - 39.47417, - 4.70516 - ], - [ - 39.48899, - 4.70763 - ], - [ - 39.49831, - 4.7103 - ], - [ - 39.49854, - 4.71009 - ], - [ - 39.50282, - 4.70669 - ], - [ - 39.50755, - 4.70596 - ], - [ - 39.51342, - 4.708 - ], - [ - 39.51997, - 4.71023 - ], - [ - 39.52607, - 4.71135 - ], - [ - 39.53082, - 4.71131 - ], - [ - 39.53667, - 4.70902 - ], - [ - 39.54252, - 4.70431 - ], - [ - 39.54636, - 4.70042 - ], - [ - 39.54928, - 4.69814 - ], - [ - 39.55379, - 4.69795 - ], - [ - 39.55989, - 4.69936 - ], - [ - 39.56712, - 4.7013 - ], - [ - 39.57343, - 4.70149 - ], - [ - 39.57952, - 4.69988 - ], - [ - 39.58493, - 4.69606 - ], - [ - 39.58876, - 4.69159 - ], - [ - 39.59257, - 4.68635 - ], - [ - 39.59572, - 4.68154 - ], - [ - 39.59909, - 4.67847 - ], - [ - 39.60271, - 4.67644 - ], - [ - 39.60789, - 4.67634 - ], - [ - 39.61353, - 4.67727 - ], - [ - 39.61896, - 4.67673 - ], - [ - 39.62413, - 4.67493 - ], - [ - 39.62841, - 4.67182 - ], - [ - 39.63269, - 4.66789 - ], - [ - 39.63923, - 4.66527 - ], - [ - 39.64554, - 4.66298 - ], - [ - 39.65253, - 4.66003 - ], - [ - 39.65815, - 4.65657 - ], - [ - 39.66154, - 4.65323 - ], - [ - 39.66378, - 4.65051 - ], - [ - 39.66446, - 4.64818 - ], - [ - 39.66535, - 4.64667 - ], - [ - 39.66783, - 4.64613 - ], - [ - 39.67055, - 4.64735 - ], - [ - 39.67325, - 4.64958 - ], - [ - 39.67709, - 4.65041 - ], - [ - 39.68251, - 4.64934 - ], - [ - 39.68883, - 4.64842 - ], - [ - 39.6965, - 4.64765 - ], - [ - 39.7019, - 4.6488 - ], - [ - 39.70642, - 4.65108 - ], - [ - 39.71118, - 4.65391 - ], - [ - 39.71412, - 4.65647 - ], - [ - 39.71526, - 4.66076 - ], - [ - 39.7164, - 4.66478 - ], - [ - 39.71843, - 4.6695 - ], - [ - 39.72275, - 4.67512 - ], - [ - 39.72794, - 4.68037 - ], - [ - 39.73201, - 4.68508 - ], - [ - 39.73744, - 4.69052 - ], - [ - 39.74197, - 4.69547 - ], - [ - 39.74649, - 4.70062 - ], - [ - 39.75192, - 4.70562 - ], - [ - 39.76481, - 4.7148 - ], - [ - 39.76526, - 4.71505 - ], - [ - 39.76662, - 4.71616 - ], - [ - 39.76753, - 4.718 - ], - [ - 39.76707, - 4.71888 - ], - [ - 39.76617, - 4.71961 - ], - [ - 39.76414, - 4.71979 - ], - [ - 39.76166, - 4.71979 - ], - [ - 39.76009, - 4.72096 - ], - [ - 39.76011, - 4.72363 - ], - [ - 39.76281, - 4.72791 - ], - [ - 39.7678, - 4.73271 - ], - [ - 39.77097, - 4.73738 - ], - [ - 39.77346, - 4.74058 - ], - [ - 39.77729, - 4.74237 - ], - [ - 39.78362, - 4.74121 - ], - [ - 39.79038, - 4.74252 - ], - [ - 39.79784, - 4.74451 - ], - [ - 39.80439, - 4.74407 - ], - [ - 39.80866, - 4.74228 - ], - [ - 39.81023, - 4.73888 - ], - [ - 39.81316, - 4.73727 - ], - [ - 39.81992, - 4.73592 - ], - [ - 39.82782, - 4.7348 - ], - [ - 39.83504, - 4.73475 - ], - [ - 39.84272, - 4.73271 - ], - [ - 39.84925, - 4.7297 - ], - [ - 39.85645, - 4.72635 - ], - [ - 39.86436, - 4.72358 - ], - [ - 39.87403, - 4.71858 - ], - [ - 39.88193, - 4.71431 - ], - [ - 39.89545, - 4.70771 - ], - [ - 39.89724, - 4.70679 - ], - [ - 39.90039, - 4.70591 - ], - [ - 39.90491, - 4.70538 - ], - [ - 39.91032, - 4.70654 - ], - [ - 39.91642, - 4.70946 - ], - [ - 39.92253, - 4.71348 - ], - [ - 39.92931, - 4.71732 - ], - [ - 39.93406, - 4.72115 - ], - [ - 39.93723, - 4.72592 - ], - [ - 39.93973, - 4.73019 - ], - [ - 39.94493, - 4.7331 - ], - [ - 39.95102, - 4.73373 - ], - [ - 39.95577, - 4.7333 - ], - [ - 39.96095, - 4.73393 - ], - [ - 39.96727, - 4.73509 - ], - [ - 39.97359, - 4.73528 - ], - [ - 39.97991, - 4.73456 - ], - [ - 39.98487, - 4.73393 - ], - [ - 39.98962, - 4.73431 - ], - [ - 39.99616, - 4.73538 - ], - [ - 39.99899, - 4.73645 - ], - [ - 40.00113, - 4.73815 - ], - [ - 40.0061, - 4.73995 - ], - [ - 40.00632, - 4.73995 - ], - [ - 40.01017, - 4.74106 - ], - [ - 40.01491, - 4.74349 - ], - [ - 40.02169, - 4.74756 - ], - [ - 40.02757, - 4.75141 - ], - [ - 40.03277, - 4.75499 - ], - [ - 40.03865, - 4.75883 - ], - [ - 40.04544, - 4.7617 - ], - [ - 40.05537, - 4.76398 - ], - [ - 40.0644, - 4.76529 - ], - [ - 40.07501, - 4.7666 - ], - [ - 40.08471, - 4.7682 - ], - [ - 40.09058, - 4.76884 - ], - [ - 40.09351, - 4.7682 - ], - [ - 40.09622, - 4.7666 - ], - [ - 40.09756, - 4.76315 - ], - [ - 40.09755, - 4.75684 - ], - [ - 40.09843, - 4.75164 - ], - [ - 40.10202, - 4.74708 - ], - [ - 40.10946, - 4.74504 - ], - [ - 40.11623, - 4.74586 - ], - [ - 40.12347, - 4.74951 - ], - [ - 40.1289, - 4.75378 - ], - [ - 40.13342, - 4.75738 - ], - [ - 40.14021, - 4.76004 - ], - [ - 40.14946, - 4.76305 - ], - [ - 40.15783, - 4.76684 - ], - [ - 40.16506, - 4.77112 - ], - [ - 40.17139, - 4.77563 - ], - [ - 40.17593, - 4.7814 - ], - [ - 40.17844, - 4.79072 - ], - [ - 40.17937, - 4.80062 - ], - [ - 40.17896, - 4.81096 - ], - [ - 40.17854, - 4.8198 - ], - [ - 40.17991, - 4.82771 - ], - [ - 40.18287, - 4.83295 - ], - [ - 40.18717, - 4.83834 - ], - [ - 40.19102, - 4.84421 - ], - [ - 40.19533, - 4.84804 - ], - [ - 40.19849, - 4.84954 - ], - [ - 40.20232, - 4.84892 - ], - [ - 40.20615, - 4.84707 - ], - [ - 40.21179, - 4.84454 - ], - [ - 40.21674, - 4.84144 - ], - [ - 40.22057, - 4.83727 - ], - [ - 40.22506, - 4.8328 - ], - [ - 40.22935, - 4.82936 - ], - [ - 40.2343, - 4.82819 - ], - [ - 40.23994, - 4.82756 - ], - [ - 40.24694, - 4.82732 - ], - [ - 40.25507, - 4.82658 - ], - [ - 40.26205, - 4.82658 - ], - [ - 40.26838, - 4.82722 - ], - [ - 40.27695, - 4.82722 - ], - [ - 40.28123, - 4.82582 - ], - [ - 40.28326, - 4.82513 - ], - [ - 40.28598, - 4.82446 - ], - [ - 40.29161, - 4.82285 - ], - [ - 40.29792, - 4.82101 - ], - [ - 40.30423, - 4.81921 - ], - [ - 40.31327, - 4.81833 - ], - [ - 40.32161, - 4.81844 - ], - [ - 40.32973, - 4.81737 - ], - [ - 40.33694, - 4.81523 - ], - [ - 40.34461, - 4.81184 - ], - [ - 40.34933, - 4.80912 - ], - [ - 40.35406, - 4.80528 - ], - [ - 40.35585, - 4.80029 - ], - [ - 40.35786, - 4.79509 - ], - [ - 40.36258, - 4.79014 - ], - [ - 40.37046, - 4.78534 - ], - [ - 40.37857, - 4.78101 - ], - [ - 40.38578, - 4.77732 - ], - [ - 40.39119, - 4.77466 - ], - [ - 40.39704, - 4.7717 - ], - [ - 40.402, - 4.76985 - ], - [ - 40.40674, - 4.77073 - ], - [ - 40.4115, - 4.77271 - ], - [ - 40.416, - 4.77165 - ], - [ - 40.42004, - 4.76732 - ], - [ - 40.42635, - 4.75985 - ], - [ - 40.43083, - 4.75417 - ], - [ - 40.43445, - 4.75306 - ], - [ - 40.44075, - 4.75257 - ], - [ - 40.44571, - 4.75009 - ], - [ - 40.44705, - 4.74626 - ], - [ - 40.45088, - 4.74213 - ], - [ - 40.45831, - 4.73897 - ], - [ - 40.46122, - 4.73534 - ], - [ - 40.46392, - 4.73262 - ], - [ - 40.47023, - 4.73082 - ], - [ - 40.47609, - 4.72577 - ], - [ - 40.48372, - 4.7165 - ], - [ - 40.48956, - 4.70994 - ], - [ - 40.49609, - 4.70499 - ], - [ - 40.50374, - 4.69974 - ], - [ - 40.51072, - 4.69591 - ], - [ - 40.51591, - 4.69586 - ], - [ - 40.52065, - 4.69557 - ], - [ - 40.52742, - 4.69445 - ], - [ - 40.53328, - 4.69212 - ], - [ - 40.53845, - 4.68925 - ], - [ - 40.54205, - 4.68445 - ], - [ - 40.54586, - 4.67876 - ], - [ - 40.5508, - 4.67338 - ], - [ - 40.55799, - 4.66585 - ], - [ - 40.56363, - 4.66313 - ], - [ - 40.57016, - 4.66065 - ], - [ - 40.57354, - 4.65969 - ], - [ - 40.57602, - 4.65862 - ], - [ - 40.57782, - 4.65881 - ], - [ - 40.57872, - 4.65789 - ], - [ - 40.57895, - 4.65765 - ], - [ - 40.57962, - 4.65701 - ], - [ - 40.58052, - 4.65585 - ], - [ - 40.58209, - 4.65298 - ], - [ - 40.58297, - 4.64793 - ], - [ - 40.58341, - 4.64346 - ], - [ - 40.58452, - 4.63957 - ], - [ - 40.58677, - 4.63482 - ], - [ - 40.59079, - 4.62758 - ], - [ - 40.59798, - 4.61855 - ], - [ - 40.60653, - 4.60947 - ], - [ - 40.61439, - 4.60058 - ], - [ - 40.6218, - 4.59174 - ], - [ - 40.62852, - 4.58178 - ], - [ - 40.63345, - 4.57211 - ], - [ - 40.63702, - 4.5624 - ], - [ - 40.64061, - 4.5569 - ], - [ - 40.64488, - 4.55375 - ], - [ - 40.64915, - 4.5501 - ], - [ - 40.65051, - 4.54714 - ], - [ - 40.65026, - 4.5433 - ], - [ - 40.65115, - 4.54107 - ], - [ - 40.65363, - 4.53947 - ], - [ - 40.65656, - 4.53947 - ], - [ - 40.66085, - 4.54126 - ], - [ - 40.66446, - 4.54213 - ], - [ - 40.67146, - 4.53985 - ], - [ - 40.67775, - 4.53441 - ], - [ - 40.68337, - 4.52804 - ], - [ - 40.6865, - 4.52352 - ], - [ - 40.69213, - 4.5174 - ], - [ - 40.69413, - 4.51468 - ], - [ - 40.70289, - 4.50317 - ], - [ - 40.70469, - 4.50059 - ], - [ - 40.70939, - 4.49291 - ], - [ - 40.71051, - 4.4882 - ], - [ - 40.71137, - 4.48004 - ], - [ - 40.71089, - 4.47372 - ], - [ - 40.71178, - 4.46925 - ], - [ - 40.71379, - 4.46561 - ], - [ - 40.71761, - 4.462 - ], - [ - 40.72504, - 4.45656 - ], - [ - 40.73066, - 4.45311 - ], - [ - 40.73628, - 4.44855 - ], - [ - 40.741, - 4.44514 - ], - [ - 40.74281, - 4.44203 - ], - [ - 40.74278, - 4.43703 - ], - [ - 40.74321, - 4.43275 - ], - [ - 40.74567, - 4.42817 - ], - [ - 40.7504, - 4.42434 - ], - [ - 40.75784, - 4.4207 - ], - [ - 40.76503, - 4.41821 - ], - [ - 40.76977, - 4.41544 - ], - [ - 40.77314, - 4.41428 - ], - [ - 40.77584, - 4.41389 - ], - [ - 40.77674, - 4.41204 - ], - [ - 40.77628, - 4.40962 - ], - [ - 40.77468, - 4.40596 - ], - [ - 40.774, - 4.40169 - ], - [ - 40.77374, - 4.3958 - ], - [ - 40.77325, - 4.38633 - ], - [ - 40.77277, - 4.37815 - ], - [ - 40.77184, - 4.37121 - ], - [ - 40.77024, - 4.36508 - ], - [ - 40.76863, - 4.3592 - ], - [ - 40.76636, - 4.35405 - ], - [ - 40.76251, - 4.35088 - ], - [ - 40.75618, - 4.34636 - ], - [ - 40.75008, - 4.34194 - ], - [ - 40.74757, - 4.33809 - ], - [ - 40.74598, - 4.33425 - ], - [ - 40.74596, - 4.33065 - ], - [ - 40.74709, - 4.32832 - ], - [ - 40.7498, - 4.3272 - ], - [ - 40.75407, - 4.32671 - ], - [ - 40.75745, - 4.32536 - ], - [ - 40.76015, - 4.32264 - ], - [ - 40.76262, - 4.32016 - ], - [ - 40.7644, - 4.31723 - ], - [ - 40.76552, - 4.31334 - ], - [ - 40.76505, - 4.30887 - ], - [ - 40.76368, - 4.30484 - ], - [ - 40.76413, - 4.30163 - ], - [ - 40.76637, - 4.2992 - ], - [ - 40.76839, - 4.29705 - ], - [ - 40.7695, - 4.29501 - ], - [ - 40.76995, - 4.2919 - ], - [ - 40.7697, - 4.28869 - ], - [ - 40.77015, - 4.28689 - ], - [ - 40.77127, - 4.28533 - ], - [ - 40.77352, - 4.28373 - ], - [ - 40.77502, - 4.28233 - ], - [ - 40.77329, - 4.28008 - ], - [ - 40.76875, - 4.27561 - ], - [ - 40.76151, - 4.27041 - ], - [ - 40.74274, - 4.25805 - ], - [ - 40.73618, - 4.25358 - ], - [ - 40.73053, - 4.24934 - ], - [ - 40.72466, - 4.24735 - ], - [ - 40.71925, - 4.24667 - ], - [ - 40.71317, - 4.24628 - ], - [ - 40.70729, - 4.24444 - ], - [ - 40.70118, - 4.23928 - ], - [ - 40.69439, - 4.235 - ], - [ - 40.68695, - 4.23373 - ], - [ - 40.68018, - 4.233 - ], - [ - 40.67589, - 4.23237 - ], - [ - 40.67205, - 4.23129 - ], - [ - 40.66054, - 4.22683 - ], - [ - 40.64924, - 4.22162 - ], - [ - 40.61762, - 4.20819 - ], - [ - 40.58103, - 4.19346 - ], - [ - 40.52502, - 4.16966 - ], - [ - 40.49296, - 4.15687 - ], - [ - 40.45141, - 4.13969 - ], - [ - 40.41708, - 4.12484 - ], - [ - 40.40376, - 4.11881 - ], - [ - 40.39018, - 4.10441 - ], - [ - 40.37395, - 4.10266 - ], - [ - 40.35791, - 4.09639 - ], - [ - 40.34526, - 4.09191 - ], - [ - 40.31569, - 4.08003 - ], - [ - 40.25249, - 4.05583 - ], - [ - 40.22922, - 4.04485 - ], - [ - 40.22403, - 4.04309 - ], - [ - 40.21907, - 4.04284 - ], - [ - 40.21478, - 4.04177 - ], - [ - 40.20959, - 4.04016 - ], - [ - 40.20441, - 4.0406 - ], - [ - 40.19878, - 4.04221 - ], - [ - 40.1936, - 4.04274 - ], - [ - 40.19043, - 4.04162 - ], - [ - 40.1893, - 4.0407 - ], - [ - 40.18456, - 4.0353 - ], - [ - 40.17529, - 4.026 - ], - [ - 40.12628, - 4.00156 - ], - [ - 40.09422, - 3.98564 - ], - [ - 40.05087, - 3.96345 - ], - [ - 40, - 3.93754 - ], - [ - 39.91834, - 3.8958 - ], - [ - 39.87861, - 3.87529 - ], - [ - 39.86484, - 3.86702 - ], - [ - 39.86258, - 3.86049 - ], - [ - 39.85892, - 3.84651 - ], - [ - 39.8544, - 3.84043 - ], - [ - 39.84694, - 3.83024 - ], - [ - 39.82702, - 3.80388 - ], - [ - 39.82611, - 3.80028 - ], - [ - 39.7998, - 3.74006 - ], - [ - 39.77963, - 3.6942 - ], - [ - 39.76714, - 3.66305 - ], - [ - 39.72513, - 3.62074 - ], - [ - 39.69981, - 3.59466 - ], - [ - 39.6666, - 3.56063 - ], - [ - 39.61916, - 3.51075 - ], - [ - 39.6047, - 3.49616 - ], - [ - 39.58799, - 3.48216 - ], - [ - 39.58483, - 3.47772 - ], - [ - 39.58302, - 3.47475 - ], - [ - 39.5778, - 3.46094 - ], - [ - 39.57553, - 3.45309 - ], - [ - 39.57394, - 3.44402 - ], - [ - 39.57006, - 3.42538 - ], - [ - 39.56712, - 3.41767 - ], - [ - 39.56215, - 3.41108 - ], - [ - 39.55357, - 3.40552 - ], - [ - 39.54456, - 3.40279 - ], - [ - 39.53418, - 3.40211 - ], - [ - 39.52608, - 3.40289 - ], - [ - 39.52068, - 3.40582 - ], - [ - 39.51574, - 3.41299 - ], - [ - 39.51351, - 3.42343 - ], - [ - 39.51151, - 3.43431 - ], - [ - 39.5095, - 3.44357 - ], - [ - 39.50727, - 3.4505 - ], - [ - 39.50323, - 3.45645 - ], - [ - 39.49693, - 3.46007 - ], - [ - 39.48859, - 3.46055 - ], - [ - 39.48003, - 3.45948 - ], - [ - 39.46831, - 3.45768 - ], - [ - 39.45727, - 3.45699 - ], - [ - 39.44467, - 3.45719 - ], - [ - 39.43317, - 3.45796 - ], - [ - 39.42236, - 3.46138 - ], - [ - 39.41133, - 3.46455 - ], - [ - 39.39939, - 3.46528 - ], - [ - 39.38566, - 3.46572 - ], - [ - 39.37101, - 3.4667 - ], - [ - 39.3566, - 3.46743 - ], - [ - 39.34556, - 3.46812 - ], - [ - 39.3379, - 3.46996 - ], - [ - 39.3334, - 3.47402 - ], - [ - 39.33251, - 3.47846 - ], - [ - 39.33253, - 3.48508 - ], - [ - 39.33412, - 3.4925 - ], - [ - 39.33504, - 3.49928 - ], - [ - 39.33369, - 3.5027 - ], - [ - 39.33055, - 3.5045 - ], - [ - 39.32626, - 3.50362 - ], - [ - 39.3204, - 3.49777 - ], - [ - 39.31248, - 3.48967 - ], - [ - 39.30391, - 3.48221 - ], - [ - 39.29376, - 3.47612 - ], - [ - 39.2825, - 3.47323 - ], - [ - 39.27168, - 3.47299 - ], - [ - 39.26019, - 3.47416 - ], - [ - 39.24825, - 3.47577 - ], - [ - 39.237, - 3.47801 - ], - [ - 39.22596, - 3.48035 - ], - [ - 39.21627, - 3.48313 - ], - [ - 39.20884, - 3.48353 - ], - [ - 39.20208, - 3.48035 - ], - [ - 39.196, - 3.47811 - ], - [ - 39.19171, - 3.47904 - ], - [ - 39.18857, - 3.48533 - ], - [ - 39.18295, - 3.49153 - ], - [ - 39.17395, - 3.49718 - ], - [ - 39.16224, - 3.50099 - ], - [ - 39.15324, - 3.5044 - ], - [ - 39.14469, - 3.50806 - ], - [ - 39.13725, - 3.51079 - ], - [ - 39.12915, - 3.51239 - ], - [ - 39.12149, - 3.51513 - ], - [ - 39.11361, - 3.52099 - ], - [ - 39.10394, - 3.52937 - ], - [ - 39.09562, - 3.53434 - ], - [ - 39.08773, - 3.53664 - ], - [ - 39.08075, - 3.53552 - ], - [ - 39.07331, - 3.53215 - ], - [ - 39.06631, - 3.52835 - ], - [ - 39.05956, - 3.5261 - ], - [ - 39.0537, - 3.52562 - ], - [ - 39.04716, - 3.5266 - ], - [ - 39.03838, - 3.52928 - ], - [ - 39.02982, - 3.53044 - ], - [ - 39.02419, - 3.53044 - ], - [ - 39.02126, - 3.52883 - ], - [ - 39.0208, - 3.52552 - ], - [ - 39.02148, - 3.52117 - ], - [ - 39.01966, - 3.51688 - ], - [ - 39.01605, - 3.51484 - ], - [ - 39.01267, - 3.5142 - ], - [ - 39.01088, - 3.51509 - ], - [ - 39.00975, - 3.51986 - ], - [ - 39.00751, - 3.52366 - ], - [ - 39.00526, - 3.52552 - ], - [ - 39.00278, - 3.52572 - ], - [ - 38.99962, - 3.52552 - ], - [ - 38.98678, - 3.52664 - ], - [ - 38.98116, - 3.52781 - ], - [ - 38.9762, - 3.52918 - ], - [ - 38.97169, - 3.53025 - ], - [ - 38.96741, - 3.52985 - ], - [ - 38.96449, - 3.52781 - ], - [ - 38.9629, - 3.52395 - ], - [ - 38.96199, - 3.51884 - ], - [ - 38.95928, - 3.51425 - ], - [ - 38.95387, - 3.512 - ], - [ - 38.94622, - 3.51137 - ], - [ - 38.93764, - 3.51094 - ], - [ - 38.92953, - 3.5103 - ], - [ - 38.9221, - 3.50962 - ], - [ - 38.91646, - 3.50962 - ], - [ - 38.91308, - 3.51005 - ], - [ - 38.91286, - 3.51005 - ], - [ - 38.90408, - 3.51391 - ], - [ - 38.89013, - 3.52026 - ], - [ - 38.87638, - 3.52503 - ], - [ - 38.85478, - 3.53552 - ], - [ - 38.85049, - 3.53634 - ], - [ - 38.84621, - 3.53546 - ], - [ - 38.84261, - 3.53386 - ], - [ - 38.839, - 3.53322 - ], - [ - 38.83652, - 3.53366 - ], - [ - 38.8363, - 3.53366 - ], - [ - 38.83022, - 3.53527 - ], - [ - 38.81783, - 3.54005 - ], - [ - 38.79261, - 3.55005 - ], - [ - 38.77731, - 3.5557 - ], - [ - 38.74014, - 3.56882 - ], - [ - 38.73045, - 3.57135 - ], - [ - 38.72416, - 3.57316 - ], - [ - 38.71965, - 3.5754 - ], - [ - 38.71605, - 3.57945 - ], - [ - 38.7129, - 3.5851 - ], - [ - 38.7093, - 3.59012 - ], - [ - 38.70639, - 3.59509 - ], - [ - 38.70234, - 3.60217 - ], - [ - 38.69851, - 3.60865 - ], - [ - 38.69357, - 3.61431 - ], - [ - 38.68816, - 3.61864 - ], - [ - 38.6832, - 3.62069 - ], - [ - 38.67892, - 3.62108 - ], - [ - 38.67599, - 3.61908 - ], - [ - 38.67352, - 3.6148 - ], - [ - 38.67215, - 3.60894 - ], - [ - 38.67125, - 3.60329 - ], - [ - 38.67056, - 3.5988 - ], - [ - 38.66965, - 3.59676 - ], - [ - 38.66786, - 3.59622 - ], - [ - 38.66628, - 3.59646 - ], - [ - 38.66222, - 3.59832 - ], - [ - 38.65073, - 3.60124 - ], - [ - 38.6442, - 3.60285 - ], - [ - 38.63789, - 3.60397 - ], - [ - 38.63248, - 3.60582 - ], - [ - 38.62777, - 3.60558 - ], - [ - 38.62325, - 3.60397 - ], - [ - 38.61829, - 3.60451 - ], - [ - 38.61581, - 3.60631 - ], - [ - 38.6147, - 3.61016 - ], - [ - 38.61267, - 3.61397 - ], - [ - 38.60997, - 3.61465 - ], - [ - 38.60748, - 3.61255 - ], - [ - 38.60545, - 3.60874 - ], - [ - 38.60184, - 3.60607 - ], - [ - 38.59689, - 3.60519 - ], - [ - 38.59014, - 3.60587 - ], - [ - 38.58157, - 3.60768 - ], - [ - 38.57414, - 3.6102 - ], - [ - 38.56715, - 3.61445 - ], - [ - 38.56288, - 3.61787 - ], - [ - 38.56153, - 3.62127 - ], - [ - 38.56199, - 3.6263 - ], - [ - 38.56334, - 3.63259 - ], - [ - 38.562, - 3.63888 - ], - [ - 38.55772, - 3.6439 - ], - [ - 38.55232, - 3.64834 - ], - [ - 38.54625, - 3.65224 - ], - [ - 38.54061, - 3.65404 - ], - [ - 38.53521, - 3.6554 - ], - [ - 38.52936, - 3.65521 - ], - [ - 38.52461, - 3.65248 - ], - [ - 38.52169, - 3.64843 - ], - [ - 38.52054, - 3.64326 - ], - [ - 38.52076, - 3.63805 - ], - [ - 38.52143, - 3.63346 - ], - [ - 38.52098, - 3.62961 - ], - [ - 38.51896, - 3.62717 - ], - [ - 38.51648, - 3.62517 - ], - [ - 38.51421, - 3.6245 - ], - [ - 38.5088, - 3.62382 - ], - [ - 38.48243, - 3.61211 - ], - [ - 38.4493, - 3.59924 - ], - [ - 38.42496, - 3.60041 - ], - [ - 38.39567, - 3.60271 - ], - [ - 38.31794, - 3.60777 - ], - [ - 38.25012, - 3.61139 - ], - [ - 38.18546, - 3.61713 - ], - [ - 38.18163, - 3.6201 - ], - [ - 38.17554, - 3.62191 - ], - [ - 38.16676, - 3.62167 - ], - [ - 38.1591, - 3.61899 - ], - [ - 38.15301, - 3.61655 - ], - [ - 38.14805, - 3.61674 - ], - [ - 38.14332, - 3.61874 - ], - [ - 38.13904, - 3.61757 - ], - [ - 38.13656, - 3.61625 - ], - [ - 38.13633, - 3.61625 - ], - [ - 38.13047, - 3.61109 - ], - [ - 38.09827, - 3.63658 - ], - [ - 38.05187, - 3.67275 - ], - [ - 38.03497, - 3.68591 - ], - [ - 38.03182, - 3.69244 - ], - [ - 38.02958, - 3.69805 - ], - [ - 38.02777, - 3.70307 - ], - [ - 38.02462, - 3.70803 - ], - [ - 38.02057, - 3.71116 - ], - [ - 38.01517, - 3.7133 - ], - [ - 38.01155, - 3.71511 - ], - [ - 38.00863, - 3.7189 - ], - [ - 38.00682, - 3.7232 - ], - [ - 38.0048, - 3.72744 - ], - [ - 38.00299, - 3.72948 - ], - [ - 38.00187, - 3.72997 - ], - [ - 37.99973, - 3.73075 - ], - [ - 37.99105, - 3.7304 - ], - [ - 37.9879, - 3.73177 - ], - [ - 37.98519, - 3.73314 - ], - [ - 37.9816, - 3.73475 - ], - [ - 37.9773, - 3.73519 - ], - [ - 37.97325, - 3.73431 - ], - [ - 37.96898, - 3.73377 - ], - [ - 37.9622, - 3.73694 - ], - [ - 37.95657, - 3.74132 - ], - [ - 37.95409, - 3.74332 - ], - [ - 37.95004, - 3.74673 - ], - [ - 37.9417, - 3.75277 - ], - [ - 37.91151, - 3.77363 - ], - [ - 37.86667, - 3.80296 - ], - [ - 37.78667, - 3.85829 - ], - [ - 37.74295, - 3.88723 - ], - [ - 37.68141, - 3.92858 - ], - [ - 37.6458, - 3.95361 - ], - [ - 37.64489, - 3.96538 - ], - [ - 37.6361, - 3.97074 - ], - [ - 37.62416, - 3.9778 - ], - [ - 37.56734, - 4.01568 - ], - [ - 37.50962, - 4.05297 - ], - [ - 37.44739, - 4.09249 - ], - [ - 37.40767, - 4.1185 - ], - [ - 37.39552, - 4.12583 - ], - [ - 37.36814, - 4.14475 - ], - [ - 37.32504, - 4.172 - ], - [ - 37.28397, - 4.19934 - ], - [ - 37.25209, - 4.21948 - ], - [ - 37.20585, - 4.25022 - ], - [ - 37.18609, - 4.26287 - ], - [ - 37.16342, - 4.27829 - ], - [ - 37.14141, - 4.29225 - ], - [ - 37.13443, - 4.29322 - ], - [ - 37.12588, - 4.29574 - ], - [ - 37.11937, - 4.29939 - ], - [ - 37.1151, - 4.3026 - ], - [ - 37.11106, - 4.30732 - ], - [ - 37.11085, - 4.30756 - ], - [ - 37.0957, - 4.33479 - ], - [ - 37.09008, - 4.34004 - ], - [ - 37.08311, - 4.34257 - ], - [ - 37.0741, - 4.34398 - ], - [ - 37.06533, - 4.34723 - ], - [ - 37.05703, - 4.35448 - ], - [ - 37.05168, - 4.36356 - ], - [ - 37.04767, - 4.37101 - ], - [ - 37.04363, - 4.3749 - ], - [ - 37.04147, - 4.37522 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf00e014", - "_rev":"1-6c8c3ae9d61e05cd9c58d594044eb1da", - "type":"Feature", - "properties":{ - "GISNAME":"Borana" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 40.827618, - 8.956528 - ], - [ - 41.031114, - 8.957757 - ], - [ - 41.037798, - 8.855309 - ], - [ - 40.828353, - 8.859298 - ], - [ - 40.827618, - 8.956528 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf00e3b2", - "_rev":"1-29daca9a742232a33bd3e1c0041eca15", - "type":"Feature", - "properties":{ - "GISNAME":"Kuni-Muktar Mountain Nyala", - "Species":"Mountain Nyal and Menelik's Bushbock" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 38.082884, - 7.149845 - ], - [ - 38.144214, - 7.169188 - ], - [ - 38.212932, - 7.207711 - ], - [ - 38.273198, - 7.219467 - ], - [ - 38.312157, - 7.192934 - ], - [ - 38.299691, - 7.120333 - ], - [ - 38.230851, - 7.100902 - ], - [ - 38.179323, - 7.070108 - ], - [ - 38.149224, - 7.058508 - ], - [ - 38.106097, - 7.062112 - ], - [ - 38.067021, - 7.102256 - ], - [ - 38.082884, - 7.149845 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf00ebd5", - "_rev":"1-4b7d51280262887d7b8d87023aa105c5", - "type":"Feature", - "properties":{ - "GISNAME":"Senkele Swayne's Hartebeest", - "Species":"Swayne's Hartebeest, Oribi" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 37.31461, - 6.46557 - ], - [ - 37.31297, - 6.47042 - ], - [ - 37.30668, - 6.48004 - ], - [ - 37.30038, - 6.48807 - ], - [ - 37.29567, - 6.49609 - ], - [ - 37.28945, - 6.51208 - ], - [ - 37.28955, - 6.52163 - ], - [ - 37.29129, - 6.53593 - ], - [ - 37.29464, - 6.55181 - ], - [ - 37.30447, - 6.57717 - ], - [ - 37.31107, - 6.59778 - ], - [ - 37.31598, - 6.61046 - ], - [ - 37.30979, - 6.62963 - ], - [ - 37.30513, - 6.64242 - ], - [ - 37.3021, - 6.65836 - ], - [ - 37.30555, - 6.68379 - ], - [ - 37.31849, - 6.70114 - ], - [ - 37.34096, - 6.71361 - ], - [ - 37.35226, - 6.72622 - ], - [ - 37.37473, - 6.73869 - ], - [ - 37.38269, - 6.737 - ], - [ - 37.41451, - 6.72709 - ], - [ - 37.42065, - 6.70315 - ], - [ - 37.43156, - 6.67757 - ], - [ - 37.44249, - 6.65357 - ], - [ - 37.44222, - 6.62652 - ], - [ - 37.44674, - 6.59941 - ], - [ - 37.43859, - 6.58359 - ], - [ - 37.42718, - 6.55984 - ], - [ - 37.419, - 6.53925 - ], - [ - 37.4012, - 6.51557 - ], - [ - 37.38184, - 6.4951 - ], - [ - 37.36261, - 6.48736 - ], - [ - 37.34332, - 6.47325 - ], - [ - 37.31461, - 6.46557 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf00f01c", - "_rev":"1-c9bb67869f6ed99d7a4172e8bcdfd414", - "type":"Feature", - "properties":{ - "GISNAME":"Maze" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 36.19018, - 6.26191 - ], - [ - 36.20316, - 6.2331 - ], - [ - 36.2126, - 6.20972 - ], - [ - 36.21848, - 6.19176 - ], - [ - 36.22852, - 6.15946 - ], - [ - 36.23306, - 6.13086 - ], - [ - 36.23874, - 6.10757 - ], - [ - 36.24061, - 6.08258 - ], - [ - 36.24495, - 6.04864 - ], - [ - 36.25266, - 6.00394 - ], - [ - 36.25608, - 5.97462 - ], - [ - 36.2562, - 5.97357 - ], - [ - 36.26056, - 5.937974 - ], - [ - 36.256799, - 5.891226 - ], - [ - 36.259179, - 5.885752 - ], - [ - 36.263117, - 5.876328 - ], - [ - 36.252181, - 5.878613 - ], - [ - 36.241401, - 5.880445 - ], - [ - 36.229337, - 5.86614 - ], - [ - 36.22008, - 5.863103 - ], - [ - 36.208266, - 5.851232 - ], - [ - 36.194656, - 5.845003 - ], - [ - 36.192289, - 5.843521 - ], - [ - 36.157439, - 5.799714 - ], - [ - 36.146635, - 5.773344 - ], - [ - 36.143043, - 5.734941 - ], - [ - 36.131102, - 5.719659 - ], - [ - 36.11017, - 5.696195 - ], - [ - 36.106571, - 5.658798 - ], - [ - 36.094695, - 5.638465 - ], - [ - 36.093983, - 5.613216 - ], - [ - 36.089424, - 5.571764 - ], - [ - 36.05867, - 5.55466 - ], - [ - 36.021557, - 5.50734 - ], - [ - 36.0138, - 5.48099 - ], - [ - 35.998824, - 5.467681 - ], - [ - 35.991033, - 5.444359 - ], - [ - 35.963921, - 5.44306 - ], - [ - 35.962796, - 5.443006 - ], - [ - 35.964219, - 5.442785 - ], - [ - 35.925713, - 5.439757 - ], - [ - 35.93071, - 5.46632 - ], - [ - 35.929383, - 5.467652 - ], - [ - 35.91893, - 5.47815 - ], - [ - 35.91255, - 5.48363 - ], - [ - 35.903093, - 5.491651 - ], - [ - 35.90294, - 5.49178 - ], - [ - 35.903035, - 5.49182 - ], - [ - 35.90313, - 5.49186 - ], - [ - 35.90313, - 5.49243 - ], - [ - 35.90193, - 5.49529 - ], - [ - 35.89899, - 5.49926 - ], - [ - 35.89709, - 5.51127 - ], - [ - 35.900517, - 5.515671 - ], - [ - 35.91618, - 5.53452 - ], - [ - 35.939453, - 5.552316 - ], - [ - 35.943141, - 5.563382 - ], - [ - 35.949377, - 5.58209 - ], - [ - 35.950354, - 5.604555 - ], - [ - 35.952431, - 5.643929 - ], - [ - 35.963752, - 5.683954 - ], - [ - 35.97067, - 5.729236 - ], - [ - 35.975334, - 5.760735 - ], - [ - 35.968165, - 5.776269 - ], - [ - 35.964696, - 5.793511 - ], - [ - 35.963119, - 5.807305 - ], - [ - 35.965324, - 5.824499 - ], - [ - 35.967901, - 5.840799 - ], - [ - 35.972878, - 5.859852 - ], - [ - 35.978622, - 5.88062 - ], - [ - 35.983325, - 5.899813 - ], - [ - 35.987549, - 5.923348 - ], - [ - 35.987227, - 5.934953 - ], - [ - 35.986786, - 5.950832 - ], - [ - 35.987549, - 5.968391 - ], - [ - 35.991367, - 5.982133 - ], - [ - 35.996063, - 5.991888 - ], - [ - 36.001291, - 6.002745 - ], - [ - 36.002011, - 6.022191 - ], - [ - 36.001171, - 6.028956 - ], - [ - 35.997474, - 6.052369 - ], - [ - 35.971517, - 6.08367 - ], - [ - 35.955485, - 6.101229 - ], - [ - 35.947624, - 6.116559 - ], - [ - 35.940216, - 6.131003 - ], - [ - 35.940878, - 6.138289 - ], - [ - 35.942506, - 6.156197 - ], - [ - 35.979151, - 6.194369 - ], - [ - 35.989006, - 6.220101 - ], - [ - 35.992893, - 6.23025 - ], - [ - 35.995655, - 6.24406 - ], - [ - 35.995655, - 6.24406 - ], - [ - 35.997474, - 6.253153 - ], - [ - 36.011979, - 6.266132 - ], - [ - 36.022668, - 6.272239 - ], - [ - 36.036804, - 6.284847 - ], - [ - 36.049388, - 6.295143 - ], - [ - 36.054732, - 6.315755 - ], - [ - 36.04328, - 6.331788 - ], - [ - 36.046334, - 6.344766 - ], - [ - 36.073055, - 6.368433 - ], - [ - 36.093667, - 6.403551 - ], - [ - 36.116571, - 6.4234 - ], - [ - 36.142013, - 6.435404 - ], - [ - 36.14067, - 6.41298 - ], - [ - 36.14123, - 6.40379 - ], - [ - 36.14621, - 6.3877 - ], - [ - 36.1494, - 6.37337 - ], - [ - 36.15574, - 6.34292 - ], - [ - 36.16544, - 6.31688 - ], - [ - 36.16679, - 6.31325 - ], - [ - 36.1771, - 6.28806 - ], - [ - 36.19018, - 6.26191 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf00f912", - "_rev":"1-7f7f51094f6cbe2d92c2c7f9e3d72720", - "type":"Feature", - "properties":{ - "GISNAME":"Tama" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 37.04147, - 4.37522 - ], - [ - 37.03733, - 4.37632 - ], - [ - 37.02989, - 4.37729 - ], - [ - 37.02539, - 4.37864 - ], - [ - 37.01908, - 4.37889 - ], - [ - 37.01276, - 4.37898 - ], - [ - 37.00848, - 4.3801 - ], - [ - 37.00601, - 4.38171 - ], - [ - 37.00444, - 4.38307 - ], - [ - 37.00444, - 4.38326 - ], - [ - 37.00107, - 4.38462 - ], - [ - 36.99878, - 4.38443 - ], - [ - 36.99851, - 4.38423 - ], - [ - 36.99626, - 4.38356 - ], - [ - 36.99377, - 4.38399 - ], - [ - 36.98924, - 4.39187 - ], - [ - 36.98178, - 4.39687 - ], - [ - 36.96574, - 4.39989 - ], - [ - 36.95399, - 4.40874 - ], - [ - 36.8652, - 4.44573 - ], - [ - 36.67708, - 4.4435 - ], - [ - 36.66014, - 4.4872 - ], - [ - 36.6506, - 4.51804 - ], - [ - 36.63284, - 4.56826 - ], - [ - 36.63018, - 4.59688 - ], - [ - 36.62606, - 4.65184 - ], - [ - 36.62199, - 4.70221 - ], - [ - 36.61245, - 4.73418 - ], - [ - 36.62785, - 4.7802 - ], - [ - 36.64109, - 4.81588 - ], - [ - 36.652, - 4.85611 - ], - [ - 36.65255, - 4.90308 - ], - [ - 36.65121, - 4.91796 - ], - [ - 36.64755, - 4.93624 - ], - [ - 36.65527, - 4.9581 - ], - [ - 36.67104, - 4.97432 - ], - [ - 36.68009, - 4.9813 - ], - [ - 36.69016, - 4.99746 - ], - [ - 36.70708, - 5.0137 - ], - [ - 36.71835, - 5.02528 - ], - [ - 36.72726, - 5.04257 - ], - [ - 36.72923, - 5.06779 - ], - [ - 36.73221, - 5.10218 - ], - [ - 36.73981, - 5.13319 - ], - [ - 36.75567, - 5.14254 - ], - [ - 36.77606, - 5.15538 - ], - [ - 36.78946, - 5.17959 - ], - [ - 36.79834, - 5.19916 - ], - [ - 36.80932, - 5.23364 - ], - [ - 36.82034, - 5.26469 - ], - [ - 36.82332, - 5.29907 - ], - [ - 36.8194, - 5.33795 - ], - [ - 36.82239, - 5.37232 - ], - [ - 36.83229, - 5.40106 - ], - [ - 36.83767, - 5.42745 - ], - [ - 36.83622, - 5.45147 - ], - [ - 36.83714, - 5.46865 - ], - [ - 36.84957, - 5.4791 - ], - [ - 36.87578, - 5.48284 - ], - [ - 36.89857, - 5.48655 - ], - [ - 36.91924, - 5.47763 - ], - [ - 36.94888, - 5.48142 - ], - [ - 36.97522, - 5.47487 - ], - [ - 36.98235, - 5.4532 - ], - [ - 36.98374, - 5.43376 - ], - [ - 36.98061, - 5.41083 - ], - [ - 36.98084, - 5.39252 - ], - [ - 36.9847, - 5.35822 - ], - [ - 36.98851, - 5.32851 - ], - [ - 36.99217, - 5.31023 - ], - [ - 36.99124, - 5.29305 - ], - [ - 36.99035, - 5.27357 - ], - [ - 36.9907, - 5.2461 - ], - [ - 36.99324, - 5.22552 - ], - [ - 37.00156, - 5.20043 - ], - [ - 37.01208, - 5.18109 - ], - [ - 37.0202, - 5.17088 - ], - [ - 37.03189, - 5.1504 - ], - [ - 37.0321, - 5.13323 - ], - [ - 37.01981, - 5.11247 - ], - [ - 37.01318, - 5.09521 - ], - [ - 37.01573, - 5.07463 - ], - [ - 37.03101, - 5.04045 - ], - [ - 37.04835, - 5.02348 - ], - [ - 37.0486, - 5.00401 - ], - [ - 37.05227, - 4.98458 - ], - [ - 37.05369, - 4.96283 - ], - [ - 37.05532, - 4.92505 - ], - [ - 37.05904, - 4.90218 - ], - [ - 37.06742, - 4.87135 - ], - [ - 37.08144, - 4.84631 - ], - [ - 37.09437, - 4.81782 - ], - [ - 37.09009, - 4.79486 - ], - [ - 37.09058, - 4.75591 - ], - [ - 37.09888, - 4.73194 - ], - [ - 37.10835, - 4.70684 - ], - [ - 37.10887, - 4.6656 - ], - [ - 37.10242, - 4.63343 - ], - [ - 37.09253, - 4.60352 - ], - [ - 37.07248, - 4.56431 - ], - [ - 37.06366, - 4.54014 - ], - [ - 37.05827, - 4.51486 - ], - [ - 37.05402, - 4.48959 - ], - [ - 37.04526, - 4.46083 - ], - [ - 37.04219, - 4.43213 - ], - [ - 37.0437, - 4.40349 - ], - [ - 37.04147, - 4.37522 - ] - ], - [ - [ - 36.93021, - 4.57692 - ], - [ - 36.93406, - 4.57799 - ], - [ - 36.93768, - 4.58056 - ], - [ - 36.94218, - 4.5828 - ], - [ - 36.94648, - 4.58503 - ], - [ - 36.95031, - 4.58683 - ], - [ - 36.95348, - 4.58912 - ], - [ - 36.9589, - 4.59343 - ], - [ - 36.96364, - 4.59746 - ], - [ - 36.96658, - 4.60102 - ], - [ - 36.96748, - 4.59995 - ], - [ - 36.96816, - 4.59902 - ], - [ - 36.96973, - 4.59975 - ], - [ - 36.972, - 4.60359 - ], - [ - 36.97245, - 4.61077 - ], - [ - 36.97472, - 4.62122 - ], - [ - 36.97969, - 4.6323 - ], - [ - 36.99032, - 4.654 - ], - [ - 36.99507, - 4.6659 - ], - [ - 36.99982, - 4.67498 - ], - [ - 37.00434, - 4.68309 - ], - [ - 37.00841, - 4.69304 - ], - [ - 37.01158, - 4.70169 - ], - [ - 37.01134, - 4.70436 - ], - [ - 37.00932, - 4.70659 - ], - [ - 37.00549, - 4.70975 - ], - [ - 36.99986, - 4.71548 - ], - [ - 36.99601, - 4.72155 - ], - [ - 36.99421, - 4.72815 - ], - [ - 36.99512, - 4.73484 - ], - [ - 36.99806, - 4.73937 - ], - [ - 37.00145, - 4.74233 - ], - [ - 37.0062, - 4.74641 - ], - [ - 37.01094, - 4.75271 - ], - [ - 37.01388, - 4.75772 - ], - [ - 37.01366, - 4.76136 - ], - [ - 37.01208, - 4.7665 - ], - [ - 37.0096, - 4.77306 - ], - [ - 37.00757, - 4.78072 - ], - [ - 37.006, - 4.78912 - ], - [ - 37.00555, - 4.79767 - ], - [ - 37.00375, - 4.80403 - ], - [ - 37.0015, - 4.80679 - ], - [ - 37.00014, - 4.80883 - ], - [ - 36.99958, - 4.80965 - ], - [ - 36.99924, - 4.81038 - ], - [ - 36.99924, - 4.81062 - ], - [ - 36.99902, - 4.81062 - ], - [ - 36.99722, - 4.81169 - ], - [ - 36.99495, - 4.81329 - ], - [ - 36.99337, - 4.81446 - ], - [ - 36.99157, - 4.81625 - ], - [ - 36.98976, - 4.81829 - ], - [ - 36.98706, - 4.82082 - ], - [ - 36.98773, - 4.82189 - ], - [ - 36.98344, - 4.82305 - ], - [ - 36.97892, - 4.82262 - ], - [ - 36.97305, - 4.82101 - ], - [ - 36.96695, - 4.81872 - ], - [ - 36.96176, - 4.81742 - ], - [ - 36.95499, - 4.81762 - ], - [ - 36.94889, - 4.81853 - ], - [ - 36.94595, - 4.81606 - ], - [ - 36.94595, - 4.81242 - ], - [ - 36.94798, - 4.80907 - ], - [ - 36.94956, - 4.80766 - ], - [ - 36.95295, - 4.8045 - ], - [ - 36.95813, - 4.80135 - ], - [ - 36.96017, - 4.79819 - ], - [ - 36.95881, - 4.79436 - ], - [ - 36.95633, - 4.79277 - ], - [ - 36.95158, - 4.7914 - ], - [ - 36.94571, - 4.79092 - ], - [ - 36.93871, - 4.79096 - ], - [ - 36.93216, - 4.79004 - ], - [ - 36.92628, - 4.78874 - ], - [ - 36.92313, - 4.79029 - ], - [ - 36.92019, - 4.7932 - ], - [ - 36.91636, - 4.79412 - ], - [ - 36.91545, - 4.79048 - ], - [ - 36.9159, - 4.78509 - ], - [ - 36.91792, - 4.77698 - ], - [ - 36.91816, - 4.76975 - ], - [ - 36.91656, - 4.76475 - ], - [ - 36.91294, - 4.76 - ], - [ - 36.90865, - 4.75679 - ], - [ - 36.90322, - 4.75456 - ], - [ - 36.89555, - 4.75097 - ], - [ - 36.88968, - 4.7467 - ], - [ - 36.88448, - 4.74101 - ], - [ - 36.8793, - 4.73601 - ], - [ - 36.87409, - 4.73131 - ], - [ - 36.86868, - 4.7297 - ], - [ - 36.86393, - 4.73242 - ], - [ - 36.86055, - 4.73699 - ], - [ - 36.8574, - 4.74369 - ], - [ - 36.85423, - 4.74946 - ], - [ - 36.84836, - 4.75208 - ], - [ - 36.84317, - 4.75505 - ], - [ - 36.84092, - 4.76067 - ], - [ - 36.83664, - 4.76727 - ], - [ - 36.83121, - 4.77355 - ], - [ - 36.82557, - 4.77704 - ], - [ - 36.82534, - 4.77426 - ], - [ - 36.82692, - 4.77019 - ], - [ - 36.82759, - 4.7682 - ], - [ - 36.82624, - 4.76723 - ], - [ - 36.82487, - 4.76543 - ], - [ - 36.82398, - 4.76136 - ], - [ - 36.82195, - 4.76136 - ], - [ - 36.82037, - 4.76315 - ], - [ - 36.81789, - 4.76525 - ], - [ - 36.81404, - 4.76591 - ], - [ - 36.80864, - 4.76815 - ], - [ - 36.80457, - 4.77088 - ], - [ - 36.79982, - 4.77519 - ], - [ - 36.79667, - 4.7799 - ], - [ - 36.79554, - 4.7865 - ], - [ - 36.79509, - 4.79257 - ], - [ - 36.79306, - 4.79417 - ], - [ - 36.79148, - 4.79257 - ], - [ - 36.79057, - 4.78849 - ], - [ - 36.78967, - 4.78329 - ], - [ - 36.78921, - 4.77903 - ], - [ - 36.78967, - 4.77174 - ], - [ - 36.78988, - 4.76364 - ], - [ - 36.79191, - 4.75364 - ], - [ - 36.7944, - 4.74626 - ], - [ - 36.798, - 4.74125 - ], - [ - 36.80161, - 4.73966 - ], - [ - 36.80523, - 4.73805 - ], - [ - 36.80816, - 4.73538 - ], - [ - 36.80838, - 4.73538 - ], - [ - 36.81064, - 4.73339 - ], - [ - 36.81335, - 4.73042 - ], - [ - 36.81741, - 4.72383 - ], - [ - 36.82282, - 4.713 - ], - [ - 36.82892, - 4.7013 - ], - [ - 36.83614, - 4.6929 - ], - [ - 36.84245, - 4.68469 - ], - [ - 36.84877, - 4.67727 - ], - [ - 36.85622, - 4.6691 - ], - [ - 36.86276, - 4.66144 - ], - [ - 36.8684, - 4.65221 - ], - [ - 36.87223, - 4.64517 - ], - [ - 36.87516, - 4.63705 - ], - [ - 36.87764, - 4.63137 - ], - [ - 36.87991, - 4.62778 - ], - [ - 36.88396, - 4.62073 - ], - [ - 36.88982, - 4.61471 - ], - [ - 36.89682, - 4.61077 - ], - [ - 36.90472, - 4.60941 - ], - [ - 36.9133, - 4.60941 - ], - [ - 36.9185, - 4.61014 - ], - [ - 36.92188, - 4.61034 - ], - [ - 36.92572, - 4.60748 - ], - [ - 36.9264, - 4.60451 - ], - [ - 36.9264, - 4.60383 - ], - [ - 36.92617, - 4.60223 - ], - [ - 36.92639, - 4.59766 - ], - [ - 36.92435, - 4.59222 - ], - [ - 36.92164, - 4.58659 - ], - [ - 36.92164, - 4.58231 - ], - [ - 36.92231, - 4.58027 - ], - [ - 36.92389, - 4.57848 - ], - [ - 36.92705, - 4.57711 - ], - [ - 36.93021, - 4.57692 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf00fc33", - "_rev":"1-97d71a135175329c61607de51ee668fb", - "type":"Feature", - "properties":{ - "GISNAME":"Chelbi", - "Species":"Grevy's Zebra, Grant's Gazelle, Gerenuk, Oryx, Lesser Kudu" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 38.633045, - 4.842169 - ], - [ - 38.626345, - 4.679255 - ], - [ - 38.625944, - 4.669464 - ], - [ - 38.315776, - 4.67392 - ], - [ - 38.321445, - 4.80706 - ], - [ - 38.314915, - 4.80807 - ], - [ - 38.292546, - 4.812062 - ], - [ - 38.261688, - 4.814464 - ], - [ - 38.241079, - 4.814885 - ], - [ - 38.234549, - 4.815896 - ], - [ - 38.230799, - 4.815976 - ], - [ - 38.22177, - 4.825868 - ], - [ - 38.218381, - 4.83566 - ], - [ - 38.216942, - 4.848042 - ], - [ - 38.211833, - 4.862274 - ], - [ - 38.211643, - 4.863284 - ], - [ - 38.206355, - 4.892409 - ], - [ - 38.208956, - 4.912662 - ], - [ - 38.220618, - 4.949497 - ], - [ - 38.22724, - 4.976731 - ], - [ - 38.232982, - 5.005745 - ], - [ - 38.240423, - 5.029418 - ], - [ - 38.240984, - 5.04442 - ], - [ - 38.239056, - 5.068294 - ], - [ - 38.237797, - 5.085097 - ], - [ - 38.237057, - 5.090408 - ], - [ - 38.351423, - 5.087912 - ], - [ - 38.364071, - 5.224393 - ], - [ - 38.514865, - 5.216564 - ], - [ - 38.507557, - 5.098585 - ], - [ - 38.643512, - 5.096438 - ], - [ - 38.633787, - 4.860082 - ], - [ - 38.633045, - 4.842169 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf01004a", - "_rev":"1-e48eabb3f7bc742e813c9a264beceeb2", - "type":"Feature", - "properties":{ - "GISNAME":"Yabello", - "Species":"Abyssinian Bush Crow, Swayne's Hartebeest, Grevy's Zebra" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 35.18415, - 10.73512 - ], - [ - 35.18416, - 10.73355 - ], - [ - 35.18419, - 10.73175 - ], - [ - 35.18444, - 10.72927 - ], - [ - 35.18445, - 10.72747 - ], - [ - 35.18333, - 10.72473 - ], - [ - 35.18087, - 10.71973 - ], - [ - 35.17772, - 10.71542 - ], - [ - 35.17591, - 10.7118 - ], - [ - 35.17366, - 10.70838 - ], - [ - 35.17118, - 10.70454 - ], - [ - 35.1687, - 10.70111 - ], - [ - 35.16619, - 10.69928 - ], - [ - 35.16393, - 10.69767 - ], - [ - 35.16053, - 10.69382 - ], - [ - 35.15783, - 10.68928 - ], - [ - 35.15512, - 10.68518 - ], - [ - 35.15311, - 10.67997 - ], - [ - 35.15224, - 10.67589 - ], - [ - 35.15136, - 10.6725 - ], - [ - 35.15072, - 10.6682 - ], - [ - 35.151, - 10.66347 - ], - [ - 35.15151, - 10.65851 - ], - [ - 35.15247, - 10.65354 - ], - [ - 35.15321, - 10.64858 - ], - [ - 35.1544, - 10.64455 - ], - [ - 35.15651, - 10.63961 - ], - [ - 35.15771, - 10.63441 - ], - [ - 35.15822, - 10.62924 - ], - [ - 35.15779, - 10.62584 - ], - [ - 35.15646, - 10.62197 - ], - [ - 35.15283, - 10.61902 - ], - [ - 35.14941, - 10.6172 - ], - [ - 35.14805, - 10.61626 - ], - [ - 35.14602, - 10.6142 - ], - [ - 35.14491, - 10.61014 - ], - [ - 35.1445, - 10.60561 - ], - [ - 35.1445, - 10.60471 - ], - [ - 35.14454, - 10.60201 - ], - [ - 35.14553, - 10.59457 - ], - [ - 35.14629, - 10.58691 - ], - [ - 35.14728, - 10.58058 - ], - [ - 35.14688, - 10.5747 - ], - [ - 35.14711, - 10.57426 - ], - [ - 35.14643, - 10.57404 - ], - [ - 35.1469, - 10.57291 - ], - [ - 35.14853, - 10.56976 - ], - [ - 35.15204, - 10.56281 - ], - [ - 35.15577, - 10.55562 - ], - [ - 35.15857, - 10.55113 - ], - [ - 35.16133, - 10.54891 - ], - [ - 35.16361, - 10.54937 - ], - [ - 35.16819, - 10.54965 - ], - [ - 35.1737, - 10.54744 - ], - [ - 35.17741, - 10.54272 - ], - [ - 35.18017, - 10.54142 - ], - [ - 35.18427, - 10.54348 - ], - [ - 35.18607, - 10.54577 - ], - [ - 35.1863, - 10.546 - ], - [ - 35.1863, - 10.54645 - ], - [ - 35.18673, - 10.54893 - ], - [ - 35.1874, - 10.55029 - ], - [ - 35.18832, - 10.55053 - ], - [ - 35.18972, - 10.54761 - ], - [ - 35.18953, - 10.54354 - ], - [ - 35.18933, - 10.54038 - ], - [ - 35.19051, - 10.53699 - ], - [ - 35.19421, - 10.53298 - ], - [ - 35.1986, - 10.52942 - ], - [ - 35.20344, - 10.52563 - ], - [ - 35.20737, - 10.52184 - ], - [ - 35.20879, - 10.51711 - ], - [ - 35.20861, - 10.51212 - ], - [ - 35.21048, - 10.50854 - ], - [ - 35.21831, - 10.50319 - ], - [ - 35.22545, - 10.49876 - ], - [ - 35.23169, - 10.49274 - ], - [ - 35.23678, - 10.48624 - ], - [ - 35.24051, - 10.47971 - ], - [ - 35.24446, - 10.47344 - ], - [ - 35.24702, - 10.46895 - ], - [ - 35.24936, - 10.46446 - ], - [ - 35.25098, - 10.46155 - ], - [ - 35.2514, - 10.46104 - ], - [ - 35.23868, - 10.43991 - ], - [ - 35.22854, - 10.42962 - ], - [ - 35.20835, - 10.40224 - ], - [ - 35.18356, - 10.37595 - ], - [ - 35.15221, - 10.32808 - ], - [ - 35.11837, - 10.29601 - ], - [ - 35.08483, - 10.24133 - ], - [ - 35.06018, - 10.20483 - ], - [ - 35.04869, - 10.21036 - ], - [ - 35.02671, - 10.23272 - ], - [ - 34.99534, - 10.27421 - ], - [ - 34.96878, - 10.29766 - ], - [ - 34.94649, - 10.34376 - ], - [ - 34.92322, - 10.37741 - ], - [ - 34.89072, - 10.41774 - ], - [ - 34.8594, - 10.45582 - ], - [ - 34.83728, - 10.48947 - ], - [ - 34.83483, - 10.50187 - ], - [ - 34.84944, - 10.52013 - ], - [ - 34.86749, - 10.53729 - ], - [ - 34.89107, - 10.56808 - ], - [ - 34.91129, - 10.59318 - ], - [ - 34.93601, - 10.62398 - ], - [ - 34.95504, - 10.65357 - ], - [ - 34.97629, - 10.68771 - ], - [ - 34.9951, - 10.73425 - ], - [ - 35.00836, - 10.76828 - ], - [ - 35.02835, - 10.81143 - ], - [ - 35.04391, - 10.84436 - ], - [ - 35.05498, - 10.87158 - ], - [ - 35.07048, - 10.90902 - ], - [ - 35.09299, - 10.93411 - ], - [ - 35.11877, - 10.97166 - ], - [ - 35.1517, - 10.98559 - ], - [ - 35.18008, - 10.99469 - ], - [ - 35.17969, - 10.99243 - ], - [ - 35.17929, - 10.98631 - ], - [ - 35.17891, - 10.97865 - ], - [ - 35.17943, - 10.97256 - ], - [ - 35.1802, - 10.96513 - ], - [ - 35.18116, - 10.96037 - ], - [ - 35.18189, - 10.95633 - ], - [ - 35.18307, - 10.95319 - ], - [ - 35.18493, - 10.95116 - ], - [ - 35.187, - 10.94983 - ], - [ - 35.19046, - 10.94783 - ], - [ - 35.19231, - 10.94581 - ], - [ - 35.19302, - 10.94334 - ], - [ - 35.19328, - 10.94087 - ], - [ - 35.19285, - 10.93793 - ], - [ - 35.19014, - 10.93429 - ], - [ - 35.18855, - 10.93201 - ], - [ - 35.18858, - 10.92907 - ], - [ - 35.18979, - 10.92322 - ], - [ - 35.19169, - 10.91691 - ], - [ - 35.19334, - 10.91265 - ], - [ - 35.19429, - 10.9095 - ], - [ - 35.19476, - 10.90792 - ], - [ - 35.19547, - 10.90656 - ], - [ - 35.19572, - 10.90387 - ], - [ - 35.19582, - 10.8937 - ], - [ - 35.19724, - 10.88876 - ], - [ - 35.2019, - 10.88158 - ], - [ - 35.20538, - 10.87667 - ], - [ - 35.20726, - 10.87193 - ], - [ - 35.20824, - 10.86653 - ], - [ - 35.20783, - 10.86155 - ], - [ - 35.20671, - 10.85861 - ], - [ - 35.20446, - 10.85495 - ], - [ - 35.20312, - 10.85066 - ], - [ - 35.20316, - 10.84818 - ], - [ - 35.20294, - 10.8466 - ], - [ - 35.20021, - 10.84477 - ], - [ - 35.19864, - 10.84116 - ], - [ - 35.19732, - 10.8375 - ], - [ - 35.19592, - 10.83457 - ], - [ - 35.19574, - 10.83368 - ], - [ - 35.1944, - 10.82935 - ], - [ - 35.19103, - 10.82345 - ], - [ - 35.18925, - 10.81892 - ], - [ - 35.18655, - 10.81393 - ], - [ - 35.18386, - 10.80848 - ], - [ - 35.18162, - 10.80326 - ], - [ - 35.17916, - 10.79716 - ], - [ - 35.17829, - 10.79309 - ], - [ - 35.17994, - 10.78859 - ], - [ - 35.18181, - 10.78476 - ], - [ - 35.18299, - 10.78095 - ], - [ - 35.18304, - 10.77598 - ], - [ - 35.18379, - 10.77034 - ], - [ - 35.18407, - 10.7656 - ], - [ - 35.18388, - 10.76176 - ], - [ - 35.1846, - 10.75703 - ], - [ - 35.18786, - 10.75299 - ], - [ - 35.19019, - 10.74897 - ], - [ - 35.1909, - 10.74717 - ], - [ - 35.19023, - 10.74535 - ], - [ - 35.18543, - 10.74418 - ], - [ - 35.182, - 10.74323 - ], - [ - 35.1818, - 10.74029 - ], - [ - 35.18298, - 10.73738 - ], - [ - 35.18415, - 10.73512 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf010ab9", - "_rev":"1-fff4db45e38d729c931353ccaf810c8c", - "type":"Feature", - "properties":{ - "GISNAME":"Dabus Valley" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 39.93228, - 8.8626 - ], - [ - 39.93165, - 8.86137 - ], - [ - 39.93026, - 8.85756 - ], - [ - 39.92817, - 8.85351 - ], - [ - 39.92609, - 8.85012 - ], - [ - 39.92221, - 8.84769 - ], - [ - 39.91811, - 8.84795 - ], - [ - 39.91471, - 8.84864 - ], - [ - 39.91219, - 8.84686 - ], - [ - 39.91286, - 8.84527 - ], - [ - 39.91558, - 8.84392 - ], - [ - 39.91763, - 8.84343 - ], - [ - 39.91988, - 8.84184 - ], - [ - 39.91895, - 8.8396 - ], - [ - 39.91553, - 8.83758 - ], - [ - 39.91413, - 8.83421 - ], - [ - 39.91412, - 8.83263 - ], - [ - 39.91251, - 8.83107 - ], - [ - 39.90865, - 8.83133 - ], - [ - 39.90547, - 8.83182 - ], - [ - 39.90227, - 8.82958 - ], - [ - 39.89932, - 8.82869 - ], - [ - 39.89837, - 8.82532 - ], - [ - 39.8995, - 8.82283 - ], - [ - 39.89968, - 8.81967 - ], - [ - 39.89648, - 8.81677 - ], - [ - 39.89328, - 8.815 - ], - [ - 39.8912, - 8.8114 - ], - [ - 39.89113, - 8.80305 - ], - [ - 39.89111, - 8.80287 - ], - [ - 39.8887, - 8.80122 - ], - [ - 39.86951, - 8.78396 - ], - [ - 39.85262, - 8.76558 - ], - [ - 39.82426, - 8.75047 - ], - [ - 39.78452, - 8.7341 - ], - [ - 39.74011, - 8.72448 - ], - [ - 39.70479, - 8.71838 - ], - [ - 39.68418, - 8.72269 - ], - [ - 39.66348, - 8.73494 - ], - [ - 39.65866, - 8.7542 - ], - [ - 39.65595, - 8.78712 - ], - [ - 39.63876, - 8.7926 - ], - [ - 39.63176, - 8.80388 - ], - [ - 39.63262, - 8.82547 - ], - [ - 39.63815, - 8.83917 - ], - [ - 39.64825, - 8.85292 - ], - [ - 39.65477, - 8.87912 - ], - [ - 39.63299, - 8.88568 - ], - [ - 39.61912, - 8.89915 - ], - [ - 39.6201, - 8.91166 - ], - [ - 39.63026, - 8.92086 - ], - [ - 39.63122, - 8.9345 - ], - [ - 39.62747, - 8.95944 - ], - [ - 39.64205, - 8.98005 - ], - [ - 39.66484, - 8.98373 - ], - [ - 39.68311, - 8.98394 - ], - [ - 39.69438, - 8.99543 - ], - [ - 39.70096, - 9.01595 - ], - [ - 39.70761, - 9.03192 - ], - [ - 39.7246, - 9.04234 - ], - [ - 39.74183, - 9.0346 - ], - [ - 39.75318, - 9.03927 - ], - [ - 39.75645, - 9.0518 - ], - [ - 39.77214, - 9.07469 - ], - [ - 39.78015, - 9.07365 - ], - [ - 39.80864, - 9.07739 - ], - [ - 39.81877, - 9.08887 - ], - [ - 39.82188, - 9.11274 - ], - [ - 39.8285, - 9.13097 - ], - [ - 39.83616, - 9.15718 - ], - [ - 39.85644, - 9.17784 - ], - [ - 39.88032, - 9.18606 - ], - [ - 39.90537, - 9.1909 - ], - [ - 39.93048, - 9.19233 - ], - [ - 39.94877, - 9.19028 - ], - [ - 39.9649, - 9.17912 - ], - [ - 39.97412, - 9.17241 - ], - [ - 39.99128, - 9.17034 - ], - [ - 40.01756, - 9.16839 - ], - [ - 40.05756, - 9.16545 - ], - [ - 40.07929, - 9.1623 - ], - [ - 40.09875, - 9.15913 - ], - [ - 40.12513, - 9.14922 - ], - [ - 40.1379, - 9.14446 - ], - [ - 40.13802, - 9.14412 - ], - [ - 40.1398, - 9.13957 - ], - [ - 40.1409, - 9.13484 - ], - [ - 40.142, - 9.1312 - ], - [ - 40.14378, - 9.12666 - ], - [ - 40.14602, - 9.1235 - ], - [ - 40.14805, - 9.12166 - ], - [ - 40.14963, - 9.11963 - ], - [ - 40.15029, - 9.1167 - ], - [ - 40.15047, - 9.11286 - ], - [ - 40.15042, - 9.10743 - ], - [ - 40.15063, - 9.1054 - ], - [ - 40.15289, - 9.10335 - ], - [ - 40.15561, - 9.10106 - ], - [ - 40.15809, - 9.09947 - ], - [ - 40.15989, - 9.09809 - ], - [ - 40.161, - 9.09537 - ], - [ - 40.16187, - 9.09016 - ], - [ - 40.16251, - 9.08567 - ], - [ - 40.16294, - 9.08341 - ], - [ - 40.1652, - 9.08111 - ], - [ - 40.16768, - 9.07974 - ], - [ - 40.1704, - 9.07837 - ], - [ - 40.17265, - 9.07586 - ], - [ - 40.17377, - 9.07383 - ], - [ - 40.17443, - 9.07109 - ], - [ - 40.17576, - 9.06793 - ], - [ - 40.1771, - 9.06499 - ], - [ - 40.17911, - 9.06114 - ], - [ - 40.17976, - 9.05752 - ], - [ - 40.17905, - 9.05527 - ], - [ - 40.17857, - 9.05212 - ], - [ - 40.1799, - 9.04895 - ], - [ - 40.18216, - 9.04599 - ], - [ - 40.18213, - 9.04396 - ], - [ - 40.18074, - 9.04149 - ], - [ - 40.17913, - 9.03902 - ], - [ - 40.17863, - 9.03541 - ], - [ - 40.17928, - 9.03157 - ], - [ - 40.18108, - 9.02862 - ], - [ - 40.18287, - 9.02567 - ], - [ - 40.18489, - 9.0225 - ], - [ - 40.18621, - 9.01865 - ], - [ - 40.18528, - 9.01505 - ], - [ - 40.18343, - 9.01236 - ], - [ - 40.18248, - 9.00945 - ], - [ - 40.18245, - 9.00561 - ], - [ - 40.18173, - 9.00154 - ], - [ - 40.18173, - 9.00132 - ], - [ - 40.1824, - 9.00018 - ], - [ - 40.18191, - 8.99635 - ], - [ - 40.18118, - 8.99139 - ], - [ - 40.17933, - 8.98711 - ], - [ - 40.17677, - 8.98286 - ], - [ - 40.17333, - 8.97996 - ], - [ - 40.16898, - 8.97685 - ], - [ - 40.16622, - 8.97348 - ], - [ - 40.16322, - 8.96967 - ], - [ - 40.16069, - 8.96585 - ], - [ - 40.15861, - 8.96227 - ], - [ - 40.15816, - 8.95965 - ], - [ - 40.153783, - 8.950086 - ], - [ - 40.141757, - 8.953477 - ], - [ - 40.134589, - 8.968535 - ], - [ - 40.130676, - 8.972602 - ], - [ - 40.130986, - 8.978581 - ], - [ - 40.137984, - 8.987115 - ], - [ - 40.138955, - 8.987539 - ], - [ - 40.148188, - 8.991577 - ], - [ - 40.148853, - 8.997244 - ], - [ - 40.147058, - 9.001323 - ], - [ - 40.140289, - 9.010093 - ], - [ - 40.132813, - 9.018859 - ], - [ - 40.115778, - 9.031661 - ], - [ - 40.106147, - 9.045765 - ], - [ - 40.102952, - 9.048264 - ], - [ - 40.098028, - 9.050487 - ], - [ - 40.088782, - 9.055419 - ], - [ - 40.026861, - 9.076777 - ], - [ - 40.027382, - 9.102585 - ], - [ - 40.009018, - 9.104054 - ], - [ - 40.009131, - 9.08832 - ], - [ - 39.998891, - 9.088891 - ], - [ - 39.996418, - 9.090584 - ], - [ - 39.991093, - 9.093567 - ], - [ - 39.975119, - 9.106378 - ], - [ - 39.943705, - 9.106515 - ], - [ - 39.942815, - 9.132316 - ], - [ - 39.938931, - 9.132609 - ], - [ - 39.935757, - 9.132276 - ], - [ - 39.931535, - 9.130364 - ], - [ - 39.927995, - 9.131918 - ], - [ - 39.923395, - 9.133465 - ], - [ - 39.917311, - 9.135043 - ], - [ - 39.911371, - 9.136859 - ], - [ - 39.905724, - 9.136827 - ], - [ - 39.906644, - 9.057215 - ], - [ - 39.84629, - 9.056874 - ], - [ - 39.789432, - 8.961543 - ], - [ - 39.840065, - 8.935227 - ], - [ - 39.849305, - 8.930425 - ], - [ - 39.888099, - 8.935048 - ], - [ - 39.893048, - 8.934132 - ], - [ - 39.903987, - 8.934508 - ], - [ - 39.911373, - 8.938324 - ], - [ - 39.930437, - 8.937803 - ], - [ - 39.937534, - 8.932496 - ], - [ - 39.960117, - 8.933568 - ], - [ - 39.970927, - 8.933394 - ], - [ - 39.986239, - 8.933402 - ], - [ - 39.9979, - 8.931581 - ], - [ - 39.997676, - 8.913652 - ], - [ - 40.000416, - 8.899408 - ], - [ - 40.003175, - 8.885064 - ], - [ - 40.006734, - 8.880996 - ], - [ - 40.001847, - 8.873421 - ], - [ - 40.001525, - 8.869016 - ], - [ - 39.93228, - 8.8626 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf01145a", - "_rev":"1-bf2e5c9f38d1bfa364cac1a7a658741a", - "type":"Feature", - "properties":{ - "GISNAME":"Awash West", - "Species":"Greater and Lesser Kudu, Oryx" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 42.158912, - 8.391393 - ], - [ - 43.12487, - 8.390196 - ], - [ - 43.083804, - 8.499527 - ], - [ - 43.029979, - 8.593505 - ], - [ - 42.956759, - 8.697203 - ], - [ - 42.906948, - 8.739341 - ], - [ - 42.868786, - 8.846259 - ], - [ - 42.619617, - 9.175271 - ], - [ - 42.830264, - 9.18006 - ], - [ - 42.85597, - 9.17682 - ], - [ - 42.97017, - 9.17475 - ], - [ - 43.08776, - 9.17614 - ], - [ - 43.18828, - 9.17278 - ], - [ - 43.24098, - 9.15978 - ], - [ - 43.25405, - 9.12021 - ], - [ - 43.26128, - 9.09079 - ], - [ - 43.26615, - 9.067 - ], - [ - 43.27558, - 9.0444 - ], - [ - 43.29196, - 9.01394 - ], - [ - 43.30138, - 8.99134 - ], - [ - 43.31884, - 8.96543 - ], - [ - 43.34195, - 8.94412 - ], - [ - 43.3651, - 8.91941 - ], - [ - 43.37913, - 8.89459 - ], - [ - 43.39542, - 8.87093 - ], - [ - 43.40944, - 8.8461 - ], - [ - 43.42471, - 8.81333 - ], - [ - 43.43314, - 8.77935 - ], - [ - 43.44821, - 8.76135 - ], - [ - 43.47587, - 8.74122 - ], - [ - 43.49781, - 8.72216 - ], - [ - 43.52443, - 8.69406 - ], - [ - 43.53954, - 8.67379 - ], - [ - 43.55122, - 8.65347 - ], - [ - 43.56405, - 8.63202 - ], - [ - 43.57243, - 8.60257 - ], - [ - 43.58191, - 8.57539 - ], - [ - 43.58699, - 8.53566 - ], - [ - 43.58759, - 8.48905 - ], - [ - 43.58336, - 8.46285 - ], - [ - 43.58829, - 8.43448 - ], - [ - 43.59452, - 8.39361 - ], - [ - 43.60878, - 8.35056 - ], - [ - 43.608, - 8.32211 - ], - [ - 43.60487, - 8.29932 - ], - [ - 43.59599, - 8.27987 - ], - [ - 43.56876, - 8.2659 - ], - [ - 43.54726, - 8.25086 - ], - [ - 43.52006, - 8.2346 - ], - [ - 43.50073, - 8.22869 - ], - [ - 43.47694, - 8.21475 - ], - [ - 43.4599, - 8.20772 - ], - [ - 43.43719, - 8.19722 - ], - [ - 43.41568, - 8.18331 - ], - [ - 43.40103, - 8.16834 - ], - [ - 43.38816, - 8.15848 - ], - [ - 43.36937, - 8.14407 - ], - [ - 43.34103, - 8.1278 - ], - [ - 43.31614, - 8.11043 - ], - [ - 43.29235, - 8.09535 - ], - [ - 43.27882, - 8.08267 - ], - [ - 43.24707, - 8.06522 - ], - [ - 43.2313, - 8.04796 - ], - [ - 43.19844, - 8.02822 - ], - [ - 43.17121, - 8.01538 - ], - [ - 43.13715, - 8.00018 - ], - [ - 43.10874, - 7.98959 - ], - [ - 43.09886, - 7.95874 - ], - [ - 43.10041, - 7.92687 - ], - [ - 43.10173, - 7.91322 - ], - [ - 43.08611, - 7.88457 - ], - [ - 43.08321, - 7.84353 - ], - [ - 43.08599, - 7.80484 - ], - [ - 43.08071, - 7.77175 - ], - [ - 43.06969, - 7.74086 - ], - [ - 43.04734, - 7.703 - ], - [ - 43.0362, - 7.68122 - ], - [ - 43.03064, - 7.66976 - ], - [ - 43.01032, - 7.65129 - ], - [ - 42.97032, - 7.65423 - ], - [ - 42.94183, - 7.65048 - ], - [ - 42.92591, - 7.64459 - ], - [ - 42.89994, - 7.62263 - ], - [ - 42.88987, - 7.60656 - ], - [ - 42.88221, - 7.58026 - ], - [ - 42.87463, - 7.54826 - ], - [ - 42.87492, - 7.52547 - ], - [ - 42.87075, - 7.49464 - ], - [ - 42.86197, - 7.46718 - ], - [ - 42.85551, - 7.43632 - ], - [ - 42.8721, - 7.38977 - ], - [ - 42.88979, - 7.34551 - ], - [ - 42.90384, - 7.31831 - ], - [ - 42.91106, - 7.28989 - ], - [ - 42.91034, - 7.25681 - ], - [ - 42.89471, - 7.22925 - ], - [ - 42.88379, - 7.19034 - ], - [ - 42.86029, - 7.15242 - ], - [ - 42.82985, - 7.12239 - ], - [ - 42.78671, - 7.10249 - ], - [ - 42.75508, - 7.07587 - ], - [ - 42.74164, - 7.05632 - ], - [ - 42.73064, - 7.0231 - ], - [ - 42.72645, - 6.99452 - ], - [ - 42.72697, - 6.95344 - ], - [ - 42.73425, - 6.92043 - ], - [ - 42.73711, - 6.87481 - ], - [ - 42.73522, - 6.84396 - ], - [ - 42.73657, - 6.828 - ], - [ - 42.74152, - 6.79837 - ], - [ - 42.7338, - 6.77659 - ], - [ - 42.7215, - 6.75704 - ], - [ - 42.70562, - 6.74771 - ], - [ - 42.68281, - 6.7463 - ], - [ - 42.66792, - 6.74955 - ], - [ - 42.64169, - 6.74696 - ], - [ - 42.6155, - 6.74208 - ], - [ - 42.58617, - 6.71319 - ], - [ - 42.55898, - 6.69688 - ], - [ - 42.54312, - 6.68756 - ], - [ - 42.5181, - 6.67927 - ], - [ - 42.49412, - 6.68012 - ], - [ - 42.47593, - 6.6742 - ], - [ - 42.44751, - 6.66359 - ], - [ - 42.42835, - 6.64394 - ], - [ - 42.39935, - 6.59107 - ], - [ - 42.38478, - 6.56919 - ], - [ - 42.36568, - 6.54498 - ], - [ - 42.34757, - 6.53334 - ], - [ - 42.31911, - 6.52615 - ], - [ - 42.29284, - 6.52698 - ], - [ - 42.28028, - 6.52683 - ], - [ - 42.2633, - 6.51521 - ], - [ - 42.24071, - 6.49666 - ], - [ - 42.20901, - 6.47458 - ], - [ - 42.20118, - 6.46192 - ], - [ - 42.18597, - 6.43255 - ], - [ - 42.18259, - 6.43158 - ], - [ - 42.18076, - 6.43269 - ], - [ - 42.18029, - 6.43447 - ], - [ - 42.1814, - 6.43703 - ], - [ - 42.18364, - 6.43905 - ], - [ - 42.18316, - 6.44108 - ], - [ - 42.18021, - 6.44194 - ], - [ - 42.17839, - 6.4431 - ], - [ - 42.17702, - 6.44508 - ], - [ - 42.17699, - 6.44686 - ], - [ - 42.17902, - 6.44758 - ], - [ - 42.18082, - 6.4483 - ], - [ - 42.18284, - 6.44989 - ], - [ - 42.18373, - 6.45149 - ], - [ - 42.18303, - 6.45303 - ], - [ - 42.18031, - 6.45419 - ], - [ - 42.17714, - 6.4541 - ], - [ - 42.17465, - 6.4541 - ], - [ - 42.17241, - 6.45293 - ], - [ - 42.17015, - 6.45111 - ], - [ - 42.16814, - 6.44908 - ], - [ - 42.16542, - 6.44898 - ], - [ - 42.16291, - 6.45101 - ], - [ - 42.15971, - 6.45342 - ], - [ - 42.15607, - 6.45524 - ], - [ - 42.15244, - 6.45655 - ], - [ - 42.14994, - 6.45771 - ], - [ - 42.14812, - 6.45877 - ], - [ - 42.14788, - 6.45992 - ], - [ - 42.14967, - 6.46175 - ], - [ - 42.15125, - 6.46291 - ], - [ - 42.15191, - 6.46422 - ], - [ - 42.15099, - 6.46538 - ], - [ - 42.14872, - 6.4658 - ], - [ - 42.14532, - 6.46619 - ], - [ - 42.14169, - 6.46729 - ], - [ - 42.13804, - 6.46928 - ], - [ - 42.13507, - 6.47197 - ], - [ - 42.13345, - 6.47559 - ], - [ - 42.13363, - 6.48007 - ], - [ - 42.13268, - 6.48508 - ], - [ - 42.1324, - 6.48909 - ], - [ - 42.13192, - 6.49091 - ], - [ - 42.13192, - 6.49155 - ], - [ - 42.13211, - 6.49477 - ], - [ - 42.13391, - 6.49699 - ], - [ - 42.13593, - 6.49839 - ], - [ - 42.13796, - 6.49839 - ], - [ - 42.14068, - 6.49733 - ], - [ - 42.14339, - 6.49761 - ], - [ - 42.14587, - 6.49896 - ], - [ - 42.14697, - 6.50262 - ], - [ - 42.14649, - 6.50461 - ], - [ - 42.14444, - 6.5059 - ], - [ - 42.14126, - 6.50657 - ], - [ - 42.13672, - 6.50812 - ], - [ - 42.13353, - 6.50942 - ], - [ - 42.13103, - 6.51053 - ], - [ - 42.12965, - 6.51274 - ], - [ - 42.12938, - 6.51708 - ], - [ - 42.12912, - 6.51997 - ], - [ - 42.12819, - 6.52181 - ], - [ - 42.12592, - 6.52262 - ], - [ - 42.12321, - 6.52238 - ], - [ - 42.11983, - 6.52104 - ], - [ - 42.11712, - 6.52055 - ], - [ - 42.11485, - 6.52093 - ], - [ - 42.11256, - 6.52316 - ], - [ - 42.1123, - 6.52633 - ], - [ - 42.11318, - 6.5286 - ], - [ - 42.11567, - 6.52845 - ], - [ - 42.11998, - 6.52802 - ], - [ - 42.12222, - 6.52985 - ], - [ - 42.12264, - 6.53347 - ], - [ - 42.12057, - 6.53752 - ], - [ - 42.11759, - 6.53954 - ], - [ - 42.11192, - 6.54016 - ], - [ - 42.1074, - 6.54094 - ], - [ - 42.1051, - 6.54368 - ], - [ - 42.10302, - 6.54753 - ], - [ - 42.10006, - 6.54946 - ], - [ - 42.09596, - 6.55087 - ], - [ - 42.0921, - 6.55211 - ], - [ - 42.08935, - 6.55525 - ], - [ - 42.08658, - 6.56021 - ], - [ - 42.08359, - 6.56425 - ], - [ - 42.08086, - 6.56599 - ], - [ - 42.07793, - 6.56508 - ], - [ - 42.07545, - 6.56368 - ], - [ - 42.07228, - 6.56364 - ], - [ - 42.06933, - 6.56542 - ], - [ - 42.06816, - 6.56787 - ], - [ - 42.06859, - 6.57033 - ], - [ - 42.07129, - 6.57149 - ], - [ - 42.07446, - 6.57269 - ], - [ - 42.07669, - 6.57457 - ], - [ - 42.07713, - 6.57634 - ], - [ - 42.07485, - 6.57746 - ], - [ - 42.071, - 6.57852 - ], - [ - 42.06824, - 6.58116 - ], - [ - 42.0666, - 6.58661 - ], - [ - 42.06429, - 6.59109 - ], - [ - 42.06219, - 6.59605 - ], - [ - 42.05966, - 6.6001 - ], - [ - 42.05716, - 6.60236 - ], - [ - 42.0542, - 6.60274 - ], - [ - 42.05172, - 6.6014 - ], - [ - 42.04836, - 6.59884 - ], - [ - 42.04566, - 6.59745 - ], - [ - 42.04362, - 6.59715 - ], - [ - 42.04225, - 6.59807 - ], - [ - 42.04222, - 6.60097 - ], - [ - 42.04376, - 6.60511 - ], - [ - 42.04554, - 6.6081 - ], - [ - 42.0471, - 6.61012 - ], - [ - 42.04774, - 6.61373 - ], - [ - 42.04726, - 6.61619 - ], - [ - 42.04475, - 6.61797 - ], - [ - 42.04136, - 6.61724 - ], - [ - 42.03776, - 6.61566 - ], - [ - 42.03346, - 6.61537 - ], - [ - 42.03074, - 6.61672 - ], - [ - 42.02822, - 6.61874 - ], - [ - 42.02592, - 6.6212 - ], - [ - 42.02431, - 6.62361 - ], - [ - 42.02384, - 6.62679 - ], - [ - 42.02493, - 6.63024 - ], - [ - 42.02694, - 6.63227 - ], - [ - 42.0326, - 6.63227 - ], - [ - 42.0344, - 6.63324 - ], - [ - 42.03482, - 6.63598 - ], - [ - 42.03321, - 6.63844 - ], - [ - 42.0298, - 6.63993 - ], - [ - 42.02639, - 6.64133 - ], - [ - 42.02388, - 6.64302 - ], - [ - 42.02114, - 6.64485 - ], - [ - 42.01839, - 6.64769 - ], - [ - 42.01586, - 6.65154 - ], - [ - 42.01584, - 6.65356 - ], - [ - 42.01619, - 6.65289 - ], - [ - 42.01653, - 6.65337 - ], - [ - 42.01809, - 6.65544 - ], - [ - 42.01944, - 6.65568 - ], - [ - 42.02285, - 6.65385 - ], - [ - 42.0258, - 6.65322 - ], - [ - 42.02716, - 6.65375 - ], - [ - 42.02941, - 6.65578 - ], - [ - 42.03141, - 6.65823 - ], - [ - 42.03342, - 6.66035 - ], - [ - 42.03658, - 6.66218 - ], - [ - 42.03905, - 6.6629 - ], - [ - 42.04018, - 6.66377 - ], - [ - 42.04039, - 6.66516 - ], - [ - 42.03923, - 6.66811 - ], - [ - 42.03672, - 6.66941 - ], - [ - 42.03446, - 6.66941 - ], - [ - 42.03218, - 6.67046 - ], - [ - 42.03033, - 6.67431 - ], - [ - 42.02959, - 6.67971 - ], - [ - 42.02977, - 6.68448 - ], - [ - 42.02995, - 6.68858 - ], - [ - 42.03061, - 6.69035 - ], - [ - 42.03263, - 6.69131 - ], - [ - 42.03738, - 6.69228 - ], - [ - 42.04326, - 6.69281 - ], - [ - 42.0471, - 6.69324 - ], - [ - 42.04958, - 6.6944 - ], - [ - 42.05114, - 6.69695 - ], - [ - 42.04974, - 6.70075 - ], - [ - 42.04789, - 6.70369 - ], - [ - 42.04673, - 6.70653 - ], - [ - 42.04736, - 6.71067 - ], - [ - 42.04933, - 6.71674 - ], - [ - 42.04951, - 6.72155 - ], - [ - 42.04948, - 6.72377 - ], - [ - 42.05082, - 6.72584 - ], - [ - 42.0524, - 6.72607 - ], - [ - 42.05379, - 6.72387 - ], - [ - 42.05428, - 6.72025 - ], - [ - 42.05498, - 6.71823 - ], - [ - 42.05656, - 6.71823 - ], - [ - 42.05813, - 6.72006 - ], - [ - 42.05832, - 6.72343 - ], - [ - 42.05784, - 6.72636 - ], - [ - 42.06005, - 6.73113 - ], - [ - 42.06364, - 6.73412 - ], - [ - 42.06768, - 6.73642 - ], - [ - 42.07174, - 6.73898 - ], - [ - 42.07624, - 6.74192 - ], - [ - 42.07913, - 6.74558 - ], - [ - 42.08113, - 6.74962 - ], - [ - 42.08017, - 6.75419 - ], - [ - 42.07696, - 6.75824 - ], - [ - 42.07377, - 6.75973 - ], - [ - 42.07081, - 6.76136 - ], - [ - 42.0683, - 6.76305 - ], - [ - 42.06647, - 6.76464 - ], - [ - 42.06508, - 6.76729 - ], - [ - 42.06528, - 6.77027 - ], - [ - 42.06728, - 6.77345 - ], - [ - 42.07022, - 6.77508 - ], - [ - 42.07267, - 6.77758 - ], - [ - 42.07356, - 6.78053 - ], - [ - 42.07579, - 6.78279 - ], - [ - 42.0787, - 6.78558 - ], - [ - 42.08161, - 6.78943 - ], - [ - 42.08338, - 6.79284 - ], - [ - 42.08424, - 6.79622 - ], - [ - 42.08285, - 6.79982 - ], - [ - 42.081, - 6.80367 - ], - [ - 42.08027, - 6.80752 - ], - [ - 42.08091, - 6.81132 - ], - [ - 42.08019, - 6.81541 - ], - [ - 42.07812, - 6.81787 - ], - [ - 42.07561, - 6.82099 - ], - [ - 42.07397, - 6.82432 - ], - [ - 42.07302, - 6.82816 - ], - [ - 42.07209, - 6.83221 - ], - [ - 42.07135, - 6.83659 - ], - [ - 42.07222, - 6.83947 - ], - [ - 42.07424, - 6.84174 - ], - [ - 42.07763, - 6.84275 - ], - [ - 42.08191, - 6.84391 - ], - [ - 42.08574, - 6.84573 - ], - [ - 42.08844, - 6.84781 - ], - [ - 42.09067, - 6.85079 - ], - [ - 42.09199, - 6.85463 - ], - [ - 42.09307, - 6.85911 - ], - [ - 42.09324, - 6.86392 - ], - [ - 42.09434, - 6.86845 - ], - [ - 42.09496, - 6.87359 - ], - [ - 42.09422, - 6.87859 - ], - [ - 42.09372, - 6.88359 - ], - [ - 42.09253, - 6.88807 - ], - [ - 42.09204, - 6.89144 - ], - [ - 42.09245, - 6.89509 - ], - [ - 42.094, - 6.89827 - ], - [ - 42.09649, - 6.8989 - ], - [ - 42.09943, - 6.89875 - ], - [ - 42.10328, - 6.89924 - ], - [ - 42.10665, - 6.9013 - ], - [ - 42.10911, - 6.90453 - ], - [ - 42.11157, - 6.90678 - ], - [ - 42.11429, - 6.9077 - ], - [ - 42.11654, - 6.90799 - ], - [ - 42.11905, - 6.90707 - ], - [ - 42.12041, - 6.90602 - ], - [ - 42.12111, - 6.90399 - ], - [ - 42.12249, - 6.90283 - ], - [ - 42.12566, - 6.90294 - ], - [ - 42.12814, - 6.9038 - ], - [ - 42.13128, - 6.90654 - ], - [ - 42.13419, - 6.90996 - ], - [ - 42.13708, - 6.91409 - ], - [ - 42.13862, - 6.91814 - ], - [ - 42.13908, - 6.91795 - ], - [ - 42.1395, - 6.92112 - ], - [ - 42.13948, - 6.92314 - ], - [ - 42.1381, - 6.92478 - ], - [ - 42.13537, - 6.92578 - ], - [ - 42.13243, - 6.92578 - ], - [ - 42.1288, - 6.92593 - ], - [ - 42.12563, - 6.92655 - ], - [ - 42.12358, - 6.92752 - ], - [ - 42.1222, - 6.92881 - ], - [ - 42.12239, - 6.93295 - ], - [ - 42.12462, - 6.93613 - ], - [ - 42.12845, - 6.93728 - ], - [ - 42.13298, - 6.93795 - ], - [ - 42.13682, - 6.93939 - ], - [ - 42.14017, - 6.94238 - ], - [ - 42.14309, - 6.94599 - ], - [ - 42.14286, - 6.94526 - ], - [ - 42.14421, - 6.94599 - ], - [ - 42.14736, - 6.94834 - ], - [ - 42.14961, - 6.94945 - ], - [ - 42.15188, - 6.94931 - ], - [ - 42.15462, - 6.94728 - ], - [ - 42.15737, - 6.9443 - ], - [ - 42.16079, - 6.94238 - ], - [ - 42.16442, - 6.94103 - ], - [ - 42.16758, - 6.94175 - ], - [ - 42.16915, - 6.9445 - ], - [ - 42.17023, - 6.94815 - ], - [ - 42.17041, - 6.95282 - ], - [ - 42.16945, - 6.95781 - ], - [ - 42.16758, - 6.96407 - ], - [ - 42.1657, - 6.96931 - ], - [ - 42.1643, - 6.97316 - ], - [ - 42.1638, - 6.97739 - ], - [ - 42.16444, - 6.98057 - ], - [ - 42.16668, - 6.98422 - ], - [ - 42.17049, - 6.98744 - ], - [ - 42.1741, - 6.98951 - ], - [ - 42.17814, - 6.99177 - ], - [ - 42.18151, - 6.99451 - ], - [ - 42.18398, - 6.99706 - ], - [ - 42.18553, - 6.99931 - ], - [ - 42.18554, - 6.99908 - ], - [ - 42.18597, - 7.00047 - ], - [ - 42.18639, - 7.00451 - ], - [ - 42.18658, - 7.00773 - ], - [ - 42.18563, - 7.01153 - ], - [ - 42.18377, - 7.01538 - ], - [ - 42.18056, - 7.01981 - ], - [ - 42.17735, - 7.02408 - ], - [ - 42.17526, - 7.02788 - ], - [ - 42.1741, - 7.03172 - ], - [ - 42.1736, - 7.03461 - ], - [ - 42.17447, - 7.03855 - ], - [ - 42.17397, - 7.04302 - ], - [ - 42.17414, - 7.04778 - ], - [ - 42.17727, - 7.0525 - ], - [ - 42.18131, - 7.05484 - ], - [ - 42.18491, - 7.05759 - ], - [ - 42.18713, - 7.06124 - ], - [ - 42.18845, - 7.06504 - ], - [ - 42.1893, - 7.06984 - ], - [ - 42.18993, - 7.07437 - ], - [ - 42.19103, - 7.07797 - ], - [ - 42.19303, - 7.08119 - ], - [ - 42.19619, - 7.08259 - ], - [ - 42.20116, - 7.08335 - ], - [ - 42.20658, - 7.08494 - ], - [ - 42.21041, - 7.08724 - ], - [ - 42.21354, - 7.09046 - ], - [ - 42.21623, - 7.09363 - ], - [ - 42.21777, - 7.09767 - ], - [ - 42.21861, - 7.10364 - ], - [ - 42.21879, - 7.1095 - ], - [ - 42.21917, - 7.11469 - ], - [ - 42.22004, - 7.1194 - ], - [ - 42.22226, - 7.12329 - ], - [ - 42.22425, - 7.12738 - ], - [ - 42.22557, - 7.13079 - ], - [ - 42.22667, - 7.13463 - ], - [ - 42.22664, - 7.1364 - ], - [ - 42.22457, - 7.13938 - ], - [ - 42.22362, - 7.14323 - ], - [ - 42.22358, - 7.1477 - ], - [ - 42.22443, - 7.15227 - ], - [ - 42.22551, - 7.15721 - ], - [ - 42.2257, - 7.16149 - ], - [ - 42.22519, - 7.16577 - ], - [ - 42.22401, - 7.17023 - ], - [ - 42.22261, - 7.17384 - ], - [ - 42.22144, - 7.17884 - ], - [ - 42.22161, - 7.18244 - ], - [ - 42.22248, - 7.18628 - ], - [ - 42.22449, - 7.18946 - ], - [ - 42.22808, - 7.1931 - ], - [ - 42.2312, - 7.19704 - ], - [ - 42.23365, - 7.20064 - ], - [ - 42.23499, - 7.20339 - ], - [ - 42.23472, - 7.20699 - ], - [ - 42.23333, - 7.20992 - ], - [ - 42.23217, - 7.21212 - ], - [ - 42.23101, - 7.21492 - ], - [ - 42.23142, - 7.21957 - ], - [ - 42.23206, - 7.22342 - ], - [ - 42.23246, - 7.22754 - ], - [ - 42.23241, - 7.23269 - ], - [ - 42.23348, - 7.23788 - ], - [ - 42.23365, - 7.24286 - ], - [ - 42.2336, - 7.24762 - ], - [ - 42.23243, - 7.25146 - ], - [ - 42.23014, - 7.25392 - ], - [ - 42.22717, - 7.25617 - ], - [ - 42.22556, - 7.25838 - ], - [ - 42.22462, - 7.2615 - ], - [ - 42.22457, - 7.26583 - ], - [ - 42.22408, - 7.27034 - ], - [ - 42.22358, - 7.2751 - ], - [ - 42.22261, - 7.27999 - ], - [ - 42.22097, - 7.28498 - ], - [ - 42.21957, - 7.28806 - ], - [ - 42.21706, - 7.29103 - ], - [ - 42.21386, - 7.29319 - ], - [ - 42.21066, - 7.29564 - ], - [ - 42.20724, - 7.29748 - ], - [ - 42.20361, - 7.29919 - ], - [ - 42.1995, - 7.30117 - ], - [ - 42.19608, - 7.30433 - ], - [ - 42.19286, - 7.30746 - ], - [ - 42.19011, - 7.31029 - ], - [ - 42.1876, - 7.31327 - ], - [ - 42.1853, - 7.31595 - ], - [ - 42.18233, - 7.31817 - ], - [ - 42.17892, - 7.31922 - ], - [ - 42.17618, - 7.32085 - ], - [ - 42.17525, - 7.32287 - ], - [ - 42.1759, - 7.32575 - ], - [ - 42.17793, - 7.32691 - ], - [ - 42.17928, - 7.32762 - ], - [ - 42.18041, - 7.32786 - ], - [ - 42.18243, - 7.32945 - ], - [ - 42.18422, - 7.3317 - ], - [ - 42.18533, - 7.33401 - ], - [ - 42.18529, - 7.33742 - ], - [ - 42.1848, - 7.34125 - ], - [ - 42.18385, - 7.34481 - ], - [ - 42.18427, - 7.34842 - ], - [ - 42.1856, - 7.35072 - ], - [ - 42.18717, - 7.35186 - ], - [ - 42.18852, - 7.35326 - ], - [ - 42.1885, - 7.35614 - ], - [ - 42.18822, - 7.35974 - ], - [ - 42.18765, - 7.37015 - ], - [ - 42.18693, - 7.37443 - ], - [ - 42.18484, - 7.37933 - ], - [ - 42.18277, - 7.38254 - ], - [ - 42.1816, - 7.38537 - ], - [ - 42.18112, - 7.38835 - ], - [ - 42.18085, - 7.39151 - ], - [ - 42.18218, - 7.39463 - ], - [ - 42.18373, - 7.39804 - ], - [ - 42.18416, - 7.40145 - ], - [ - 42.18435, - 7.40486 - ], - [ - 42.1834, - 7.40803 - ], - [ - 42.18158, - 7.40889 - ], - [ - 42.17885, - 7.40976 - ], - [ - 42.17611, - 7.41177 - ], - [ - 42.17405, - 7.41354 - ], - [ - 42.1711, - 7.4144 - ], - [ - 42.16769, - 7.41465 - ], - [ - 42.16386, - 7.41388 - ], - [ - 42.15955, - 7.41359 - ], - [ - 42.15206, - 7.41445 - ], - [ - 42.14753, - 7.41551 - ], - [ - 42.1441, - 7.4169 - ], - [ - 42.14204, - 7.41911 - ], - [ - 42.14064, - 7.42219 - ], - [ - 42.14016, - 7.42539 - ], - [ - 42.1408, - 7.42856 - ], - [ - 42.14214, - 7.43101 - ], - [ - 42.14302, - 7.43375 - ], - [ - 42.14277, - 7.43644 - ], - [ - 42.14067, - 7.44027 - ], - [ - 42.13839, - 7.44272 - ], - [ - 42.13565, - 7.44406 - ], - [ - 42.13247, - 7.44473 - ], - [ - 42.12952, - 7.44488 - ], - [ - 42.12681, - 7.44464 - ], - [ - 42.12411, - 7.44368 - ], - [ - 42.1216, - 7.44392 - ], - [ - 42.11955, - 7.44498 - ], - [ - 42.11659, - 7.44743 - ], - [ - 42.1134, - 7.449 - ], - [ - 42.11021, - 7.45006 - ], - [ - 42.10725, - 7.45117 - ], - [ - 42.10361, - 7.45362 - ], - [ - 42.10154, - 7.45539 - ], - [ - 42.10061, - 7.45898 - ], - [ - 42.10078, - 7.46307 - ], - [ - 42.10119, - 7.46686 - ], - [ - 42.10181, - 7.47166 - ], - [ - 42.10133, - 7.47592 - ], - [ - 42.10059, - 7.48067 - ], - [ - 42.09986, - 7.48475 - ], - [ - 42.09825, - 7.48739 - ], - [ - 42.09596, - 7.48916 - ], - [ - 42.09232, - 7.4907 - ], - [ - 42.08482, - 7.49247 - ], - [ - 42.08141, - 7.49377 - ], - [ - 42.07935, - 7.49535 - ], - [ - 42.07774, - 7.49761 - ], - [ - 42.07658, - 7.50049 - ], - [ - 42.0745, - 7.50409 - ], - [ - 42.07199, - 7.50673 - ], - [ - 42.06855, - 7.50964 - ], - [ - 42.06581, - 7.51119 - ], - [ - 42.06366, - 7.51201 - ], - [ - 42.06105, - 7.51186 - ], - [ - 42.05832, - 7.51205 - ], - [ - 42.05515, - 7.51267 - ], - [ - 42.05354, - 7.51396 - ], - [ - 42.05308, - 7.51622 - ], - [ - 42.05323, - 7.52188 - ], - [ - 42.05341, - 7.52663 - ], - [ - 42.05291, - 7.53071 - ], - [ - 42.05104, - 7.53449 - ], - [ - 42.04784, - 7.53832 - ], - [ - 42.04395, - 7.54237 - ], - [ - 42.03981, - 7.54702 - ], - [ - 42.03568, - 7.55282 - ], - [ - 42.03267, - 7.55866 - ], - [ - 42.03012, - 7.56403 - ], - [ - 42.0287, - 7.56989 - ], - [ - 42.02818, - 7.57511 - ], - [ - 42.02858, - 7.57981 - ], - [ - 42.02966, - 7.58437 - ], - [ - 42.03075, - 7.58777 - ], - [ - 42.03255, - 7.58979 - ], - [ - 42.03436, - 7.59094 - ], - [ - 42.03592, - 7.59276 - ], - [ - 42.03655, - 7.59732 - ], - [ - 42.03695, - 7.60159 - ], - [ - 42.03689, - 7.60719 - ], - [ - 42.03753, - 7.61155 - ], - [ - 42.03861, - 7.61563 - ], - [ - 42.0397, - 7.61923 - ], - [ - 42.04147, - 7.6233 - ], - [ - 42.04346, - 7.62781 - ], - [ - 42.04477, - 7.63222 - ], - [ - 42.04519, - 7.63606 - ], - [ - 42.0447, - 7.63941 - ], - [ - 42.04617, - 7.64933 - ], - [ - 42.04635, - 7.65413 - ], - [ - 42.04632, - 7.65701 - ], - [ - 42.04654, - 7.65792 - ], - [ - 42.04832, - 7.66175 - ], - [ - 42.04894, - 7.66559 - ], - [ - 42.04913, - 7.66874 - ], - [ - 42.04842, - 7.67214 - ], - [ - 42.04634, - 7.67502 - ], - [ - 42.04406, - 7.67704 - ], - [ - 42.04222, - 7.67886 - ], - [ - 42.04242, - 7.68155 - ], - [ - 42.04351, - 7.68514 - ], - [ - 42.04437, - 7.68994 - ], - [ - 42.04659, - 7.69449 - ], - [ - 42.04837, - 7.69745 - ], - [ - 42.04947, - 7.70129 - ], - [ - 42.04918, - 7.70574 - ], - [ - 42.048, - 7.71054 - ], - [ - 42.04795, - 7.71499 - ], - [ - 42.04814, - 7.71883 - ], - [ - 42.04741, - 7.72266 - ], - [ - 42.0451, - 7.72651 - ], - [ - 42.04235, - 7.72966 - ], - [ - 42.04073, - 7.73253 - ], - [ - 42.03978, - 7.73637 - ], - [ - 42.03951, - 7.74116 - ], - [ - 42.03922, - 7.74725 - ], - [ - 42.03893, - 7.75242 - ], - [ - 42.03886, - 7.7585 - ], - [ - 42.03812, - 7.76368 - ], - [ - 42.03785, - 7.76818 - ], - [ - 42.03759, - 7.77115 - ], - [ - 42.03529, - 7.77398 - ], - [ - 42.03343, - 7.77829 - ], - [ - 42.03156, - 7.78366 - ], - [ - 42.03016, - 7.7873 - ], - [ - 42.02807, - 7.79133 - ], - [ - 42.02623, - 7.79444 - ], - [ - 42.02392, - 7.79822 - ], - [ - 42.0205, - 7.8009 - ], - [ - 42.01865, - 7.80387 - ], - [ - 42.01749, - 7.80693 - ], - [ - 42.01674, - 7.81197 - ], - [ - 42.01622, - 7.81805 - ], - [ - 42.01595, - 7.82227 - ], - [ - 42.01591, - 7.82504 - ], - [ - 42.01682, - 7.82567 - ], - [ - 42.01658, - 7.82662 - ], - [ - 42.01677, - 7.83069 - ], - [ - 42.01628, - 7.83333 - ], - [ - 42.01646, - 7.83745 - ], - [ - 42.01754, - 7.84267 - ], - [ - 42.01908, - 7.84736 - ], - [ - 42.02084, - 7.85124 - ], - [ - 42.02194, - 7.85416 - ], - [ - 42.02213, - 7.8578 - ], - [ - 42.02186, - 7.86193 - ], - [ - 42.02023, - 7.86681 - ], - [ - 42.01812, - 7.87265 - ], - [ - 42.01602, - 7.87763 - ], - [ - 42.01347, - 7.88232 - ], - [ - 42.01139, - 7.88653 - ], - [ - 42.00999, - 7.89036 - ], - [ - 42.00927, - 7.89401 - ], - [ - 42.00875, - 7.89942 - ], - [ - 42.0078, - 7.90368 - ], - [ - 42.00776, - 7.90837 - ], - [ - 42.00657, - 7.91248 - ], - [ - 42.00448, - 7.91694 - ], - [ - 42.00308, - 7.92119 - ], - [ - 42.00189, - 7.9257 - ], - [ - 42.00163, - 7.92929 - ], - [ - 42.00181, - 7.93292 - ], - [ - 42.00154, - 7.93676 - ], - [ - 42.00151, - 7.93991 - ], - [ - 42.00215, - 7.94374 - ], - [ - 42.00346, - 7.94786 - ], - [ - 42.005, - 7.95169 - ], - [ - 42.00724, - 7.9549 - ], - [ - 42.0115, - 7.95896 - ], - [ - 42.01509, - 7.96241 - ], - [ - 42.01846, - 7.96538 - ], - [ - 42.02137, - 7.96839 - ], - [ - 42.02452, - 7.97136 - ], - [ - 42.02719, - 7.97476 - ], - [ - 42.02988, - 7.97796 - ], - [ - 42.03189, - 7.98112 - ], - [ - 42.03344, - 7.98404 - ], - [ - 42.03365, - 7.98634 - ], - [ - 42.0327, - 7.98921 - ], - [ - 42.03246, - 7.99146 - ], - [ - 42.03288, - 7.99376 - ], - [ - 42.034, - 7.99581 - ], - [ - 42.03511, - 7.99759 - ], - [ - 42.03668, - 7.99859 - ], - [ - 42.03829, - 7.99909 - ], - [ - 42.04015, - 8.00049 - ], - [ - 42.04062, - 8.00091 - ], - [ - 42.04153, - 8.00203 - ], - [ - 42.04179, - 8.00384 - ], - [ - 42.04276, - 8.00742 - ], - [ - 42.04371, - 8.01011 - ], - [ - 42.04353, - 8.01304 - ], - [ - 42.042, - 8.01714 - ], - [ - 42.03938, - 8.02325 - ], - [ - 42.0379, - 8.0296 - ], - [ - 42.03753, - 8.035 - ], - [ - 42.03807, - 8.03951 - ], - [ - 42.03971, - 8.0433 - ], - [ - 42.04113, - 8.04689 - ], - [ - 42.04212, - 8.05183 - ], - [ - 42.04241, - 8.05589 - ], - [ - 42.04293, - 8.0606 - ], - [ - 42.0439, - 8.0642 - ], - [ - 42.04552, - 8.06642 - ], - [ - 42.04873, - 8.06797 - ], - [ - 42.05172, - 8.07105 - ], - [ - 42.05553, - 8.08226 - ], - [ - 42.05785, - 8.08539 - ], - [ - 42.0608, - 8.08557 - ], - [ - 42.06422, - 8.0862 - ], - [ - 42.06584, - 8.08886 - ], - [ - 42.06683, - 8.09359 - ], - [ - 42.06962, - 8.09828 - ], - [ - 42.0731, - 8.10294 - ], - [ - 42.075, - 8.10741 - ], - [ - 42.07553, - 8.1126 - ], - [ - 42.07521, - 8.12072 - ], - [ - 42.07508, - 8.12658 - ], - [ - 42.07583, - 8.13132 - ], - [ - 42.07771, - 8.13511 - ], - [ - 42.07665, - 8.13963 - ], - [ - 42.07467, - 8.1435 - ], - [ - 42.0743, - 8.14779 - ], - [ - 42.07571, - 8.15048 - ], - [ - 42.07778, - 8.15315 - ], - [ - 42.07853, - 8.15719 - ], - [ - 42.07816, - 8.16241 - ], - [ - 42.07986, - 8.16868 - ], - [ - 42.08221, - 8.17449 - ], - [ - 42.08411, - 8.17966 - ], - [ - 42.08352, - 8.18507 - ], - [ - 42.08361, - 8.19048 - ], - [ - 42.08595, - 8.19473 - ], - [ - 42.0892, - 8.19918 - ], - [ - 42.09087, - 8.20455 - ], - [ - 42.09052, - 8.2102 - ], - [ - 42.09105, - 8.21563 - ], - [ - 42.09252, - 8.2219 - ], - [ - 42.09462, - 8.22569 - ], - [ - 42.09786, - 8.22948 - ], - [ - 42.10201, - 8.23392 - ], - [ - 42.10369, - 8.23909 - ], - [ - 42.10581, - 8.24376 - ], - [ - 42.11017, - 8.24709 - ], - [ - 42.11546, - 8.25084 - ], - [ - 42.11803, - 8.25598 - ], - [ - 42.11971, - 8.26181 - ], - [ - 42.12049, - 8.26766 - ], - [ - 42.12148, - 8.27215 - ], - [ - 42.12401, - 8.27458 - ], - [ - 42.12632, - 8.27725 - ], - [ - 42.1273, - 8.28131 - ], - [ - 42.12986, - 8.2851 - ], - [ - 42.13333, - 8.2891 - ], - [ - 42.13677, - 8.29152 - ], - [ - 42.14133, - 8.29257 - ], - [ - 42.14633, - 8.29362 - ], - [ - 42.14954, - 8.29582 - ], - [ - 42.15006, - 8.29875 - ], - [ - 42.14942, - 8.3019 - ], - [ - 42.1497, - 8.30528 - ], - [ - 42.15248, - 8.30817 - ], - [ - 42.15685, - 8.31191 - ], - [ - 42.15963, - 8.31549 - ], - [ - 42.1629, - 8.32063 - ], - [ - 42.16588, - 8.32306 - ], - [ - 42.17022, - 8.32411 - ], - [ - 42.1734, - 8.32519 - ], - [ - 42.1748, - 8.32697 - ], - [ - 42.17416, - 8.32924 - ], - [ - 42.17305, - 8.33128 - ], - [ - 42.1749, - 8.33327 - ], - [ - 42.17856, - 8.33456 - ], - [ - 42.18245, - 8.33675 - ], - [ - 42.18456, - 8.34032 - ], - [ - 42.18575, - 8.34416 - ], - [ - 42.1858, - 8.34731 - ], - [ - 42.18537, - 8.34867 - ], - [ - 42.18314, - 8.35052 - ], - [ - 42.18227, - 8.35322 - ], - [ - 42.18254, - 8.35593 - ], - [ - 42.1819, - 8.3582 - ], - [ - 42.17944, - 8.35981 - ], - [ - 42.17698, - 8.36209 - ], - [ - 42.17525, - 8.36777 - ], - [ - 42.1753, - 8.37048 - ], - [ - 42.17456, - 8.3735 - ], - [ - 42.17168, - 8.37493 - ], - [ - 42.16854, - 8.37747 - ], - [ - 42.16676, - 8.37996 - ], - [ - 42.16428, - 8.38203 - ], - [ - 42.16205, - 8.38476 - ], - [ - 42.16074, - 8.38818 - ], - [ - 42.15896, - 8.39135 - ], - [ - 42.158912, - 8.391393 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf011f39", - "_rev":"1-eacc54e9ad66129c68362ad5590da23c", - "type":"Feature", - "properties":{ - "GISNAME":"Eastern Hararghe (Harar-Wabi Shebelle)" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 33.81975, - 8.30897 - ], - [ - 33.81918, - 8.30975 - ], - [ - 33.81757, - 8.31178 - ], - [ - 33.81684, - 8.31468 - ], - [ - 33.81634, - 8.31829 - ], - [ - 33.8163, - 8.32076 - ], - [ - 33.81718, - 8.32327 - ], - [ - 33.8176, - 8.32529 - ], - [ - 33.81826, - 8.32686 - ], - [ - 33.8187, - 8.32779 - ], - [ - 33.78601, - 8.35099 - ], - [ - 33.78487, - 8.3521 - ], - [ - 33.78463, - 8.35301 - ], - [ - 33.78529, - 8.35435 - ], - [ - 33.78641, - 8.35549 - ], - [ - 33.78708, - 8.35708 - ], - [ - 33.78659, - 8.35866 - ], - [ - 33.7852, - 8.36067 - ], - [ - 33.8231, - 8.30575 - ], - [ - 33.8208, - 8.30754 - ], - [ - 33.81975, - 8.30897 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf012368", - "_rev":"3-df2ee41932dfb3fdda84e0486be93870", - "type":"Feature", - "properties":{ - "GISNAME":"Jikao" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 38.645948, - 7.414774 - ], - [ - 38.644798, - 7.404916 - ], - [ - 38.647252, - 7.394537 - ], - [ - 38.645393, - 7.38889 - ], - [ - 38.639592, - 7.383874 - ], - [ - 38.638013, - 7.381503 - ], - [ - 38.63948, - 7.378837 - ], - [ - 38.641787, - 7.375694 - ], - [ - 38.640568, - 7.37166 - ], - [ - 38.63405, - 7.369356 - ], - [ - 38.628922, - 7.372138 - ], - [ - 38.625038, - 7.372647 - ], - [ - 38.620811, - 7.371053 - ], - [ - 38.616931, - 7.370687 - ], - [ - 38.613558, - 7.375578 - ], - [ - 38.616365, - 7.379268 - ], - [ - 38.619862, - 7.38699 - ], - [ - 38.619672, - 7.390142 - ], - [ - 38.61632, - 7.390129 - ], - [ - 38.610334, - 7.386951 - ], - [ - 38.606227, - 7.388072 - ], - [ - 38.605001, - 7.396475 - ], - [ - 38.59725, - 7.396076 - ], - [ - 38.591249, - 7.39605 - ], - [ - 38.583634, - 7.390601 - ], - [ - 38.572755, - 7.382971 - ], - [ - 38.556407, - 7.378568 - ], - [ - 38.531301, - 7.380625 - ], - [ - 38.510006, - 7.384322 - ], - [ - 38.495774, - 7.39455 - ], - [ - 38.478208, - 7.417762 - ], - [ - 38.462933, - 7.417151 - ], - [ - 38.443787, - 7.414513 - ], - [ - 38.43017, - 7.411033 - ], - [ - 38.424662, - 7.402072 - ], - [ - 38.379484, - 7.403517 - ], - [ - 38.37933, - 7.434835 - ], - [ - 38.378421, - 7.457834 - ], - [ - 38.379877, - 7.473037 - ], - [ - 38.379668, - 7.494294 - ], - [ - 38.384987, - 7.515854 - ], - [ - 38.389625, - 7.538084 - ], - [ - 38.396278, - 7.564361 - ], - [ - 38.406357, - 7.583924 - ], - [ - 38.434432, - 7.597658 - ], - [ - 38.453751, - 7.602315 - ], - [ - 38.463897, - 7.608418 - ], - [ - 38.467226, - 7.621892 - ], - [ - 38.461068, - 7.633302 - ], - [ - 38.449804, - 7.648054 - ], - [ - 38.453834, - 7.65682 - ], - [ - 38.465358, - 7.658892 - ], - [ - 38.479614, - 7.656938 - ], - [ - 38.490497, - 7.650932 - ], - [ - 38.50269, - 7.655024 - ], - [ - 38.516912, - 7.660471 - ], - [ - 38.518227, - 7.669897 - ], - [ - 38.527686, - 7.678686 - ], - [ - 38.534392, - 7.69621 - ], - [ - 38.541778, - 7.713736 - ], - [ - 38.548534, - 7.720494 - ], - [ - 38.557352, - 7.721205 - ], - [ - 38.576367, - 7.717923 - ], - [ - 38.604227, - 7.70862 - ], - [ - 38.623925, - 7.703992 - ], - [ - 38.64158, - 7.7007 - ], - [ - 38.652832, - 7.701408 - ], - [ - 38.662069, - 7.6838 - ], - [ - 38.672652, - 7.660352 - ], - [ - 38.671128, - 7.632007 - ], - [ - 38.668618, - 7.591913 - ], - [ - 38.666945, - 7.567373 - ], - [ - 38.665041, - 7.539449 - ], - [ - 38.664629, - 7.53341 - ], - [ - 38.67218, - 7.51123 - ], - [ - 38.672005, - 7.485483 - ], - [ - 38.663171, - 7.480744 - ], - [ - 38.658413, - 7.483417 - ], - [ - 38.651655, - 7.478006 - ], - [ - 38.653047, - 7.469263 - ], - [ - 38.653077, - 7.46186 - ], - [ - 38.64959, - 7.451749 - ], - [ - 38.651573, - 7.441598 - ], - [ - 38.649119, - 7.434925 - ], - [ - 38.64646, - 7.422127 - ], - [ - 38.64633, - 7.418454 - ], - [ - 38.645948, - 7.414774 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf012546", - "_rev":"1-e5b4aff1649d5fc6cda3759d38855fb8", - "type":"Feature", - "properties":{ - "GISNAME":"Abijatta-Shalla Lakes", - "Species":"Great White Pelicans, Flamingoes, Egyptian Geese, Storks, Eagles, Herons" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 35.37204, - 7.1263 - ], - [ - 35.36987, - 7.13695 - ], - [ - 35.35684, - 7.14669 - ], - [ - 35.34416, - 7.15637 - ], - [ - 35.33004, - 7.18038 - ], - [ - 35.31898, - 7.19163 - ], - [ - 35.30638, - 7.20767 - ], - [ - 35.29861, - 7.22842 - ], - [ - 35.29889, - 7.25544 - ], - [ - 35.29439, - 7.2841 - ], - [ - 35.29457, - 7.30158 - ], - [ - 35.29971, - 7.33648 - ], - [ - 35.3111, - 7.3586 - ], - [ - 35.31803, - 7.36833 - ], - [ - 35.32568, - 7.37909 - ], - [ - 35.35626, - 7.40575 - ], - [ - 35.36758, - 7.41992 - ], - [ - 35.39827, - 7.4561 - ], - [ - 35.43354, - 7.47159 - ], - [ - 35.46882, - 7.48866 - ], - [ - 35.49774, - 7.50739 - ], - [ - 35.53622, - 7.52601 - ], - [ - 35.57004, - 7.5558 - ], - [ - 35.59247, - 7.56507 - ], - [ - 35.6104, - 7.58254 - ], - [ - 35.63277, - 7.60432 - ], - [ - 35.65216, - 7.62792 - ], - [ - 35.68113, - 7.6514 - ], - [ - 35.7197, - 7.67796 - ], - [ - 35.73899, - 7.69203 - ], - [ - 35.76505, - 7.70415 - ], - [ - 35.78228, - 7.71217 - ], - [ - 35.84139, - 7.71785 - ], - [ - 35.8844, - 7.70942 - ], - [ - 35.91142, - 7.69799 - ], - [ - 35.94004, - 7.68814 - ], - [ - 35.96211, - 7.66089 - ], - [ - 35.98759, - 7.65584 - ], - [ - 35.98896, - 7.63359 - ], - [ - 36.00602, - 7.58417 - ], - [ - 36.00714, - 7.53809 - ], - [ - 36.00517, - 7.50159 - ], - [ - 36.0001, - 7.47305 - ], - [ - 35.98057, - 7.43515 - ], - [ - 35.95951, - 7.4052 - ], - [ - 35.94494, - 7.38471 - ], - [ - 35.92552, - 7.35792 - ], - [ - 35.89651, - 7.32965 - ], - [ - 35.87718, - 7.31239 - ], - [ - 35.85789, - 7.29831 - ], - [ - 35.81784, - 7.28288 - ], - [ - 35.78412, - 7.2626 - ], - [ - 35.76648, - 7.25486 - ], - [ - 35.74405, - 7.24558 - ], - [ - 35.73274, - 7.23299 - ], - [ - 35.67835, - 7.21931 - ], - [ - 35.66393, - 7.21311 - ], - [ - 35.64311, - 7.207 - ], - [ - 35.6174, - 7.1898 - ], - [ - 35.61073, - 7.18548 - ], - [ - 35.59333, - 7.1742 - ], - [ - 35.58848, - 7.17106 - ], - [ - 35.5788, - 7.16004 - ], - [ - 35.55305, - 7.13967 - ], - [ - 35.53606, - 7.13104 - ], - [ - 35.51937, - 7.12257 - ], - [ - 35.51698, - 7.12204 - ], - [ - 35.49218, - 7.11652 - ], - [ - 35.45859, - 7.10896 - ], - [ - 35.43953, - 7.11712 - ], - [ - 35.39952, - 7.10645 - ], - [ - 35.37408, - 7.11628 - ], - [ - 35.37204, - 7.1263 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf0128cc", - "_rev":"1-8e1533bf284901a801341ad9b4694919", - "type":"Feature", - "properties":{ - "GISNAME":"Mizan-Teferi" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 37.584476, - 6.013149 - ], - [ - 37.587282, - 6.010388 - ], - [ - 37.589558, - 6.00749 - ], - [ - 37.59421, - 6.006332 - ], - [ - 37.59895, - 6.011399 - ], - [ - 37.601183, - 6.014462 - ], - [ - 37.622277, - 6.014482 - ], - [ - 37.688549, - 6.041919 - ], - [ - 37.75545, - 6.085302 - ], - [ - 37.782485, - 6.090876 - ], - [ - 37.785519, - 6.089796 - ], - [ - 37.784109, - 6.076937 - ], - [ - 37.786849, - 6.070082 - ], - [ - 37.787174, - 6.066199 - ], - [ - 37.781521, - 6.061081 - ], - [ - 37.782742, - 6.057504 - ], - [ - 37.783089, - 6.050334 - ], - [ - 37.780427, - 6.045535 - ], - [ - 37.776259, - 6.042219 - ], - [ - 37.762758, - 5.99166 - ], - [ - 37.756999, - 5.979961 - ], - [ - 37.745881, - 5.959064 - ], - [ - 37.743419, - 5.953217 - ], - [ - 37.750136, - 5.946599 - ], - [ - 37.752678, - 5.940786 - ], - [ - 37.751858, - 5.938698 - ], - [ - 37.745618, - 5.936574 - ], - [ - 37.735185, - 5.937752 - ], - [ - 37.729783, - 5.935498 - ], - [ - 37.726655, - 5.932331 - ], - [ - 37.720495, - 5.930275 - ], - [ - 37.715074, - 5.930741 - ], - [ - 37.702963, - 5.914801 - ], - [ - 37.691855, - 5.908935 - ], - [ - 37.688379, - 5.892299 - ], - [ - 37.6676, - 5.867306 - ], - [ - 37.665575, - 5.868634 - ], - [ - 37.662008, - 5.866371 - ], - [ - 37.65799, - 5.864553 - ], - [ - 37.652621, - 5.86362 - ], - [ - 37.649708, - 5.863823 - ], - [ - 37.646551, - 5.866933 - ], - [ - 37.644952, - 5.871396 - ], - [ - 37.641799, - 5.873835 - ], - [ - 37.636195, - 5.874466 - ], - [ - 37.620376, - 5.863167 - ], - [ - 37.61851, - 5.873445 - ], - [ - 37.618916, - 5.879265 - ], - [ - 37.616875, - 5.88283 - ], - [ - 37.617501, - 5.889099 - ], - [ - 37.619698, - 5.895155 - ], - [ - 37.621889, - 5.901883 - ], - [ - 37.62454, - 5.907047 - ], - [ - 37.625832, - 5.914216 - ], - [ - 37.627363, - 5.919372 - ], - [ - 37.626649, - 5.925184 - ], - [ - 37.627719, - 5.932127 - ], - [ - 37.625889, - 5.937483 - ], - [ - 37.62495, - 5.943517 - ], - [ - 37.621804, - 5.944836 - ], - [ - 37.573121, - 5.924349 - ], - [ - 37.533055, - 5.920474 - ], - [ - 37.540076, - 5.940213 - ], - [ - 37.536912, - 5.943993 - ], - [ - 37.533293, - 5.948664 - ], - [ - 37.532604, - 5.950896 - ], - [ - 37.53437, - 5.954488 - ], - [ - 37.539266, - 5.958775 - ], - [ - 37.540777, - 5.966393 - ], - [ - 37.541624, - 5.97311 - ], - [ - 37.541126, - 5.979818 - ], - [ - 37.545302, - 5.990586 - ], - [ - 37.54971, - 6.000462 - ], - [ - 37.555714, - 6.006546 - ], - [ - 37.56732, - 6.018719 - ], - [ - 37.572238, - 6.017563 - ], - [ - 37.577295, - 6.015348 - ], - [ - 37.580623, - 6.013915 - ], - [ - 37.584476, - 6.013149 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf013296", - "_rev":"1-dc53b5e25068e3c48ffdb2f5ad86482d", - "type":"Feature", - "properties":{ - "GISNAME":"Nechisar", - "Species":"Swayne's Hartebeest, Plains Zebra, Greater Kudu, Crocodile, Hippo, African Wild Dog" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 40.89503, - 10.18615 - ], - [ - 40.89972, - 10.17716 - ], - [ - 40.91918, - 10.17286 - ], - [ - 40.94216, - 10.16182 - ], - [ - 40.97669, - 10.14072 - ], - [ - 41.02598, - 10.12546 - ], - [ - 41.06161, - 10.10663 - ], - [ - 41.12011, - 10.08695 - ], - [ - 41.14998, - 10.07259 - ], - [ - 41.18892, - 10.06286 - ], - [ - 41.22337, - 10.04854 - ], - [ - 41.26012, - 10.03199 - ], - [ - 41.29674, - 10.02563 - ], - [ - 41.33795, - 10.01706 - ], - [ - 41.35301, - 10.00025 - ], - [ - 41.35898, - 9.97995 - ], - [ - 41.37314, - 9.94501 - ], - [ - 41.38041, - 9.91226 - ], - [ - 41.38094, - 9.87149 - ], - [ - 41.37924, - 9.82616 - ], - [ - 41.37745, - 9.78763 - ], - [ - 41.39054, - 9.747 - ], - [ - 41.39457, - 9.69945 - ], - [ - 41.39837, - 9.67117 - ], - [ - 41.40346, - 9.63043 - ], - [ - 41.41293, - 9.60446 - ], - [ - 41.42029, - 9.56488 - ], - [ - 41.41707, - 9.54897 - ], - [ - 41.37483, - 9.54847 - ], - [ - 41.34408, - 9.54244 - ], - [ - 41.31108, - 9.53412 - ], - [ - 41.28382, - 9.52246 - ], - [ - 41.25996, - 9.51311 - ], - [ - 41.2394, - 9.514 - ], - [ - 41.22454, - 9.51496 - ], - [ - 41.203, - 9.50337 - ], - [ - 41.17566, - 9.49851 - ], - [ - 41.15852, - 9.49945 - ], - [ - 41.13667, - 9.51166 - ], - [ - 41.12175, - 9.51715 - ], - [ - 41.08736, - 9.52808 - ], - [ - 41.06224, - 9.52779 - ], - [ - 41.04295, - 9.5185 - ], - [ - 41.03164, - 9.51043 - ], - [ - 41.02378, - 9.50012 - ], - [ - 41.02601, - 9.50469 - ], - [ - 41.02123, - 9.5205 - ], - [ - 41.02559, - 9.53643 - ], - [ - 41.0251, - 9.57497 - ], - [ - 41.02476, - 9.60103 - ], - [ - 41.02881, - 9.64076 - ], - [ - 41.02839, - 9.67362 - ], - [ - 41.02664, - 9.72119 - ], - [ - 41.02387, - 9.75855 - ], - [ - 41.02348, - 9.78913 - ], - [ - 41.01978, - 9.80948 - ], - [ - 41.01382, - 9.8298 - ], - [ - 41.0089, - 9.85693 - ], - [ - 41.00391, - 9.88971 - ], - [ - 40.99556, - 9.91793 - ], - [ - 40.98844, - 9.93823 - ], - [ - 40.97781, - 9.96528 - ], - [ - 40.9614, - 9.99792 - ], - [ - 40.94741, - 10.0204 - ], - [ - 40.92986, - 10.05302 - ], - [ - 40.90218, - 10.07534 - ], - [ - 40.90206, - 10.08439 - ], - [ - 40.89502, - 10.09902 - ], - [ - 40.89241, - 10.12389 - ], - [ - 40.88865, - 10.14987 - ], - [ - 40.89293, - 10.17255 - ], - [ - 40.89503, - 10.18615 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf0135fa", - "_rev":"1-a42c6a357da3482379b03b2feea66485", - "type":"Feature", - "properties":{ - "GISNAME":"Erer-Gota" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 36.372358, - 5.888207 - ], - [ - 36.370548, - 5.86901 - ], - [ - 36.378718, - 5.861025 - ], - [ - 36.383967, - 5.842914 - ], - [ - 36.391214, - 5.826843 - ], - [ - 36.405371, - 5.822425 - ], - [ - 36.408836, - 5.82017 - ], - [ - 36.405483, - 5.812112 - ], - [ - 36.405576, - 5.803518 - ], - [ - 36.414269, - 5.795017 - ], - [ - 36.421815, - 5.786504 - ], - [ - 36.428905, - 5.767097 - ], - [ - 36.431353, - 5.752798 - ], - [ - 36.425701, - 5.745287 - ], - [ - 36.425843, - 5.732108 - ], - [ - 36.429424, - 5.718967 - ], - [ - 36.44217, - 5.706496 - ], - [ - 36.442299, - 5.694463 - ], - [ - 36.434553, - 5.66859 - ], - [ - 36.440444, - 5.653752 - ], - [ - 36.440629, - 5.636561 - ], - [ - 36.419519, - 5.627736 - ], - [ - 36.416908, - 5.604209 - ], - [ - 36.414266, - 5.583546 - ], - [ - 36.413911, - 5.563481 - ], - [ - 36.420442, - 5.542344 - ], - [ - 36.424232, - 5.509711 - ], - [ - 36.430805, - 5.48456 - ], - [ - 36.339295, - 5.419353 - ], - [ - 36.263728, - 5.416215 - ], - [ - 36.239354, - 5.414828 - ], - [ - 36.23414, - 5.414531 - ], - [ - 36.218032, - 5.413613 - ], - [ - 36.217774, - 5.413598 - ], - [ - 36.226971, - 5.440302 - ], - [ - 36.226991, - 5.440363 - ], - [ - 36.208669, - 5.453341 - ], - [ - 36.192637, - 5.457922 - ], - [ - 36.183475, - 5.457922 - ], - [ - 36.168385, - 5.466221 - ], - [ - 36.168206, - 5.466319 - ], - [ - 36.162099, - 5.477008 - ], - [ - 36.16668, - 5.499147 - ], - [ - 36.162165, - 5.512692 - ], - [ - 36.162099, - 5.512889 - ], - [ - 36.14912, - 5.51747 - ], - [ - 36.133088, - 5.503728 - ], - [ - 36.1224, - 5.477771 - ], - [ - 36.1224, - 5.452578 - ], - [ - 36.126893, - 5.426592 - ], - [ - 36.127396, - 5.423681 - ], - [ - 36.128268, - 5.404313 - ], - [ - 36.127671, - 5.401688 - ], - [ - 36.126103, - 5.394787 - ], - [ - 36.124112, - 5.394972 - ], - [ - 36.118827, - 5.387488 - ], - [ - 36.111226, - 5.376725 - ], - [ - 36.104932, - 5.374711 - ], - [ - 36.096898, - 5.37214 - ], - [ - 36.086958, - 5.370001 - ], - [ - 36.07351, - 5.3684 - ], - [ - 36.064184, - 5.367346 - ], - [ - 36.048101, - 5.365527 - ], - [ - 36.048336, - 5.365311 - ], - [ - 36.024194, - 5.362983 - ], - [ - 35.980678, - 5.342371 - ], - [ - 35.9677, - 5.341607 - ], - [ - 35.947627, - 5.363756 - ], - [ - 35.939007, - 5.375347 - ], - [ - 35.916549, - 5.406499 - ], - [ - 35.925713, - 5.439757 - ], - [ - 35.964454, - 5.442569 - ], - [ - 35.964219, - 5.442785 - ], - [ - 35.963921, - 5.44306 - ], - [ - 35.962518, - 5.443278 - ], - [ - 35.990755, - 5.444631 - ], - [ - 35.998546, - 5.467953 - ], - [ - 36.013522, - 5.481262 - ], - [ - 36.021279, - 5.507611 - ], - [ - 36.058392, - 5.554932 - ], - [ - 36.089146, - 5.572036 - ], - [ - 36.093705, - 5.613487 - ], - [ - 36.094416, - 5.638737 - ], - [ - 36.106293, - 5.659069 - ], - [ - 36.109892, - 5.696466 - ], - [ - 36.130824, - 5.719931 - ], - [ - 36.142764, - 5.735213 - ], - [ - 36.146357, - 5.773615 - ], - [ - 36.157161, - 5.799986 - ], - [ - 36.192011, - 5.843792 - ], - [ - 36.194656, - 5.845003 - ], - [ - 36.208266, - 5.851232 - ], - [ - 36.22008, - 5.863103 - ], - [ - 36.229337, - 5.86614 - ], - [ - 36.241401, - 5.880445 - ], - [ - 36.252181, - 5.878613 - ], - [ - 36.263117, - 5.876328 - ], - [ - 36.313865, - 5.878478 - ], - [ - 36.341141, - 5.87878 - ], - [ - 36.349111, - 5.888961 - ], - [ - 36.372358, - 5.888207 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf014589", - "_rev":"1-ceb337649ef1443ea416add97d6086db", - "type":"Feature", - "properties":{ - "GISNAME":"Mago", - "Species":"Elephant, Buffalo, Grant's Gazelle Greater and Lesser Kudus" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 35.923284, - 5.43094 - ], - [ - 35.916549, - 5.406499 - ], - [ - 35.936593, - 5.378592 - ], - [ - 35.947627, - 5.363756 - ], - [ - 35.9677, - 5.341607 - ], - [ - 35.980678, - 5.342371 - ], - [ - 36.003582, - 5.354586 - ], - [ - 36.024194, - 5.362983 - ], - [ - 36.048101, - 5.365527 - ], - [ - 36.064184, - 5.367346 - ], - [ - 36.086958, - 5.370001 - ], - [ - 36.096898, - 5.37214 - ], - [ - 36.111226, - 5.376725 - ], - [ - 36.118827, - 5.387488 - ], - [ - 36.12439, - 5.3947 - ], - [ - 36.12638, - 5.394515 - ], - [ - 36.127713, - 5.400375 - ], - [ - 36.127671, - 5.401688 - ], - [ - 36.126893, - 5.426592 - ], - [ - 36.126495, - 5.439327 - ], - [ - 36.122678, - 5.452306 - ], - [ - 36.122678, - 5.477499 - ], - [ - 36.133366, - 5.503456 - ], - [ - 36.149398, - 5.517198 - ], - [ - 36.162165, - 5.512692 - ], - [ - 36.162377, - 5.512618 - ], - [ - 36.166958, - 5.498876 - ], - [ - 36.162377, - 5.476736 - ], - [ - 36.168385, - 5.466221 - ], - [ - 36.168484, - 5.466048 - ], - [ - 36.183753, - 5.45765 - ], - [ - 36.192914, - 5.45765 - ], - [ - 36.208947, - 5.453069 - ], - [ - 36.226971, - 5.440302 - ], - [ - 36.227269, - 5.440091 - ], - [ - 36.218032, - 5.413613 - ], - [ - 36.215818, - 5.407263 - ], - [ - 36.200549, - 5.362983 - ], - [ - 36.21395, - 5.30783 - ], - [ - 36.21138, - 5.29787 - ], - [ - 36.20889, - 5.29017 - ], - [ - 36.20663, - 5.28412 - ], - [ - 36.20686, - 5.28188 - ], - [ - 36.20686, - 5.28116 - ], - [ - 36.20708, - 5.28048 - ], - [ - 36.20731, - 5.28029 - ], - [ - 36.20731, - 5.28005 - ], - [ - 36.20868, - 5.27326 - ], - [ - 36.20663, - 5.27282 - ], - [ - 36.20392, - 5.27414 - ], - [ - 36.19873, - 5.2782 - ], - [ - 36.197711, - 5.27871 - ], - [ - 36.19196, - 5.28159 - ], - [ - 36.1854, - 5.28388 - ], - [ - 36.17839, - 5.28653 - ], - [ - 36.17207, - 5.28542 - ], - [ - 36.1689, - 5.27932 - ], - [ - 36.16959, - 5.27477 - ], - [ - 36.17388, - 5.27186 - ], - [ - 36.18066, - 5.27205 - ], - [ - 36.18631, - 5.27167 - ], - [ - 36.19196, - 5.26934 - ], - [ - 36.19579, - 5.26604 - ], - [ - 36.198345, - 5.262727 - ], - [ - 36.19896, - 5.26193 - ], - [ - 36.20008, - 5.25936 - ], - [ - 36.20054, - 5.25786 - ], - [ - 36.20054, - 5.25538 - ], - [ - 36.200017, - 5.249501 - ], - [ - 36.19986, - 5.24773 - ], - [ - 36.19648, - 5.23407 - ], - [ - 36.19332, - 5.21851 - ], - [ - 36.19558, - 5.21105 - ], - [ - 36.200678, - 5.208522 - ], - [ - 36.20417, - 5.20679 - ], - [ - 36.2141, - 5.20364 - ], - [ - 36.21523, - 5.19638 - ], - [ - 36.21027, - 5.18964 - ], - [ - 36.20281, - 5.18828 - ], - [ - 36.19762, - 5.1923 - ], - [ - 36.196668, - 5.19263 - ], - [ - 36.19174, - 5.19434 - ], - [ - 36.18452, - 5.18576 - ], - [ - 36.17865, - 5.1749 - ], - [ - 36.1809, - 5.172 - ], - [ - 36.183012, - 5.169662 - ], - [ - 36.1852, - 5.16724 - ], - [ - 36.1904, - 5.15842 - ], - [ - 36.18927, - 5.15372 - ], - [ - 36.1852, - 5.15391 - ], - [ - 36.17888, - 5.15571 - ], - [ - 36.17097, - 5.15954 - ], - [ - 36.170642, - 5.161996 - ], - [ - 36.16961, - 5.16971 - ], - [ - 36.16803, - 5.17238 - ], - [ - 36.16148, - 5.17064 - ], - [ - 36.16035, - 5.16318 - ], - [ - 36.161473, - 5.159536 - ], - [ - 36.16307, - 5.15435 - ], - [ - 36.16555, - 5.14621 - ], - [ - 36.16307, - 5.14122 - ], - [ - 36.15788, - 5.14035 - ], - [ - 36.14997, - 5.14374 - ], - [ - 36.14545, - 5.14756 - ], - [ - 36.14138, - 5.14549 - ], - [ - 36.13438, - 5.14485 - ], - [ - 36.13076, - 5.14756 - ], - [ - 36.12693, - 5.15363 - ], - [ - 36.12196, - 5.15818 - ], - [ - 36.12016, - 5.15997 - ], - [ - 36.120714, - 5.161523 - ], - [ - 36.12082, - 5.16182 - ], - [ - 36.11992, - 5.16851 - ], - [ - 36.11585, - 5.1704 - ], - [ - 36.11179, - 5.16787 - ], - [ - 36.111179, - 5.16343 - ], - [ - 36.11089, - 5.16133 - ], - [ - 36.10705, - 5.15813 - ], - [ - 36.10004, - 5.15818 - ], - [ - 36.09372, - 5.15954 - ], - [ - 36.0883, - 5.16152 - ], - [ - 36.087778, - 5.162666 - ], - [ - 36.08717, - 5.164 - ], - [ - 36.08965, - 5.17006 - ], - [ - 36.08784, - 5.1735 - ], - [ - 36.08537, - 5.17282 - ], - [ - 36.08197, - 5.16851 - ], - [ - 36.07858, - 5.16583 - ], - [ - 36.07587, - 5.16811 - ], - [ - 36.07158, - 5.17447 - ], - [ - 36.06525, - 5.17646 - ], - [ - 36.06277, - 5.17195 - ], - [ - 36.06435, - 5.16492 - ], - [ - 36.06865, - 5.15542 - ], - [ - 36.07113, - 5.14931 - ], - [ - 36.06978, - 5.14709 - ], - [ - 36.06527, - 5.1434 - ], - [ - 36.06256, - 5.13822 - ], - [ - 36.06324, - 5.13618 - ], - [ - 36.06662, - 5.13438 - ], - [ - 36.070745, - 5.134815 - ], - [ - 36.07317, - 5.13507 - ], - [ - 36.07792, - 5.13147 - ], - [ - 36.08154, - 5.12338 - ], - [ - 36.07928, - 5.1195 - ], - [ - 36.07544, - 5.1163 - ], - [ - 36.0725, - 5.11204 - ], - [ - 36.07228, - 5.10753 - ], - [ - 36.07409, - 5.10413 - ], - [ - 36.07838, - 5.10258 - ], - [ - 36.08245, - 5.10346 - ], - [ - 36.08764, - 5.10612 - ], - [ - 36.09058, - 5.10369 - ], - [ - 36.09306, - 5.09759 - ], - [ - 36.09081, - 5.094 - ], - [ - 36.08674, - 5.09216 - ], - [ - 36.08087, - 5.09376 - ], - [ - 36.07477, - 5.09648 - ], - [ - 36.06957, - 5.09648 - ], - [ - 36.06302, - 5.09482 - ], - [ - 36.05941, - 5.09594 - ], - [ - 36.05888, - 5.098631 - ], - [ - 36.05873, - 5.09939 - ], - [ - 36.06054, - 5.10549 - ], - [ - 36.06009, - 5.11087 - ], - [ - 36.05669, - 5.10927 - ], - [ - 36.05467, - 5.10099 - ], - [ - 36.055756, - 5.093577 - ], - [ - 36.0558, - 5.09328 - ], - [ - 36.05626, - 5.08309 - ], - [ - 36.05829, - 5.07834 - ], - [ - 36.06145, - 5.07451 - ], - [ - 36.06258, - 5.07204 - ], - [ - 36.06258, - 5.07063 - ], - [ - 36.06191, - 5.06908 - ], - [ - 36.05942, - 5.067 - ], - [ - 36.0522, - 5.06301 - ], - [ - 36.04858, - 5.06118 - ], - [ - 36.0443, - 5.05841 - ], - [ - 36.04023, - 5.0557 - ], - [ - 36.038587, - 5.050963 - ], - [ - 36.03843, - 5.05051 - ], - [ - 36.0409, - 5.04488 - ], - [ - 36.04498, - 5.04169 - ], - [ - 36.04927, - 5.0429 - ], - [ - 36.05333, - 5.04828 - ], - [ - 36.058488, - 5.052706 - ], - [ - 36.06101, - 5.05487 - ], - [ - 36.0662, - 5.05352 - ], - [ - 36.067677, - 5.049538 - ], - [ - 36.06778, - 5.04926 - ], - [ - 36.06689, - 5.04304 - ], - [ - 36.06395, - 5.03878 - ], - [ - 36.06102, - 5.03514 - ], - [ - 36.06328, - 5.03296 - ], - [ - 36.06644, - 5.03223 - ], - [ - 36.071002, - 5.034002 - ], - [ - 36.07231, - 5.03451 - ], - [ - 36.07434, - 5.03451 - ], - [ - 36.07344, - 5.02728 - ], - [ - 36.07096, - 5.02136 - ], - [ - 36.06802, - 5.01759 - ], - [ - 36.06464, - 5.01507 - ], - [ - 36.05989, - 5.01259 - ], - [ - 36.05402, - 5.01167 - ], - [ - 36.052327, - 5.010135 - ], - [ - 36.05177, - 5.00963 - ], - [ - 36.052102, - 5.008968 - ], - [ - 36.05289, - 5.0074 - ], - [ - 36.05651, - 5.00265 - ], - [ - 36.05764, - 4.99765 - ], - [ - 36.053586, - 4.996032 - ], - [ - 36.05313, - 4.99585 - ], - [ - 36.04838, - 4.99926 - ], - [ - 36.04499, - 5.00191 - ], - [ - 36.04049, - 5.00265 - ], - [ - 36.03732, - 4.99969 - ], - [ - 36.03844, - 4.99649 - ], - [ - 36.04116, - 4.99382 - ], - [ - 36.045, - 4.99067 - ], - [ - 36.04884, - 4.98659 - ], - [ - 36.05426, - 4.98092 - ], - [ - 36.06036, - 4.97598 - ], - [ - 36.06443, - 4.97413 - ], - [ - 36.07097, - 4.97481 - ], - [ - 36.07483, - 4.9737 - ], - [ - 36.07911, - 4.96812 - ], - [ - 36.08159, - 4.96671 - ], - [ - 36.08159, - 4.97238 - ], - [ - 36.0791, - 4.98121 - ], - [ - 36.0791, - 4.98815 - ], - [ - 36.08136, - 4.99203 - ], - [ - 36.081129, - 4.992721 - ], - [ - 36.07977, - 4.99679 - ], - [ - 36.07932, - 5.00086 - ], - [ - 36.08226, - 5.00328 - ], - [ - 36.08655, - 5.00222 - ], - [ - 36.08903, - 4.99853 - ], - [ - 36.09152, - 4.99004 - ], - [ - 36.091533, - 4.989456 - ], - [ - 36.09175, - 4.97961 - ], - [ - 36.09424, - 4.97195 - ], - [ - 36.09898, - 4.97399 - ], - [ - 36.100203, - 4.973485 - ], - [ - 36.10123, - 4.97306 - ], - [ - 36.101137, - 4.971628 - ], - [ - 36.10079, - 4.96627 - ], - [ - 36.09785, - 4.95837 - ], - [ - 36.09402, - 4.95318 - ], - [ - 36.08995, - 4.9509 - ], - [ - 36.08589, - 4.94687 - ], - [ - 36.08792, - 4.94367 - ], - [ - 36.09357, - 4.9425 - ], - [ - 36.09854, - 4.94275 - ], - [ - 36.1035, - 4.94683 - ], - [ - 36.10757, - 4.95026 - ], - [ - 36.111119, - 4.950999 - ], - [ - 36.11502, - 4.95181 - ], - [ - 36.11525, - 4.94613 - ], - [ - 36.1139, - 4.93843 - ], - [ - 36.1078, - 4.93532 - ], - [ - 36.10532, - 4.93033 - ], - [ - 36.10148, - 4.92626 - ], - [ - 36.100538, - 4.924913 - ], - [ - 36.09832, - 4.92174 - ], - [ - 36.09945, - 4.91679 - ], - [ - 36.09607, - 4.91185 - ], - [ - 36.09448, - 4.90544 - ], - [ - 36.09697, - 4.89938 - ], - [ - 36.09629, - 4.89413 - ], - [ - 36.09584, - 4.89011 - ], - [ - 36.096016, - 4.889975 - ], - [ - 36.09901, - 4.88768 - ], - [ - 36.10285, - 4.88428 - ], - [ - 36.09991, - 4.88196 - ], - [ - 36.09629, - 4.88176 - ], - [ - 36.09381, - 4.88084 - ], - [ - 36.093123, - 4.877378 - ], - [ - 36.09224, - 4.87293 - ], - [ - 36.09337, - 4.86483 - ], - [ - 36.093453, - 4.864335 - ], - [ - 36.09428, - 4.85939 - ], - [ - 36.09066, - 4.85532 - ], - [ - 36.08615, - 4.85397 - ], - [ - 36.07668, - 4.85304 - ], - [ - 36.073747, - 4.852935 - ], - [ - 36.06831, - 4.85274 - ], - [ - 36.06854, - 4.84934 - ], - [ - 36.0717, - 4.84717 - ], - [ - 36.07328, - 4.84494 - ], - [ - 36.073951, - 4.842396 - ], - [ - 36.07419, - 4.84149 - ], - [ - 36.07441, - 4.84033 - ], - [ - 36.07498, - 4.84003 - ], - [ - 36.07509, - 4.83969 - ], - [ - 36.07509, - 4.83809 - ], - [ - 36.07487, - 4.83606 - ], - [ - 36.07238, - 4.83309 - ], - [ - 36.06674, - 4.82955 - ], - [ - 36.0584, - 4.82814 - ], - [ - 36.052972, - 4.82582 - ], - [ - 36.05206, - 4.82543 - ], - [ - 36.0505, - 4.820875 - ], - [ - 36.04958, - 4.81819 - ], - [ - 36.047987, - 4.808834 - ], - [ - 36.04778, - 4.80762 - ], - [ - 36.046341, - 4.803551 - ], - [ - 36.0435, - 4.79552 - ], - [ - 36.03921, - 4.79063 - ], - [ - 36.03763, - 4.79039 - ], - [ - 36.03424, - 4.79466 - ], - [ - 36.02859, - 4.79558 - ], - [ - 36.02318, - 4.79311 - ], - [ - 36.01934, - 4.78679 - ], - [ - 36.01574, - 4.77815 - ], - [ - 36.01167, - 4.76936 - ], - [ - 36.00807, - 4.76145 - ], - [ - 36.00604, - 4.75466 - ], - [ - 36.00311, - 4.74106 - ], - [ - 36.00085, - 4.73427 - ], - [ - 35.997067, - 4.726536 - ], - [ - 35.99657, - 4.72552 - ], - [ - 35.99454, - 4.72072 - ], - [ - 35.99341, - 4.71625 - ], - [ - 35.99252, - 4.70941 - ], - [ - 35.99252, - 4.70087 - ], - [ - 35.99275, - 4.6945 - ], - [ - 35.992598, - 4.691387 - ], - [ - 35.99252, - 4.68979 - ], - [ - 35.99252, - 4.68955 - ], - [ - 35.99264, - 4.68955 - ], - [ - 35.99185, - 4.68819 - ], - [ - 35.99094, - 4.68658 - ], - [ - 35.990567, - 4.685971 - ], - [ - 35.98779, - 4.68144 - ], - [ - 35.98508, - 4.67688 - ], - [ - 35.97898, - 4.671 - ], - [ - 35.97673, - 4.66449 - ], - [ - 35.97493, - 4.65565 - ], - [ - 35.97403, - 4.64502 - ], - [ - 35.97449, - 4.63123 - ], - [ - 35.9772, - 4.62696 - ], - [ - 35.98104, - 4.62336 - ], - [ - 35.98556, - 4.61972 - ], - [ - 35.98917, - 4.6134 - ], - [ - 35.989742, - 4.611369 - ], - [ - 35.99121, - 4.60616 - ], - [ - 35.99136, - 4.60542 - ], - [ - 35.99039, - 4.60456 - ], - [ - 35.98813, - 4.60335 - ], - [ - 35.98565, - 4.60251 - ], - [ - 35.984712, - 4.602159 - ], - [ - 35.98022, - 4.60048 - ], - [ - 35.97504, - 4.59746 - ], - [ - 35.96872, - 4.59319 - ], - [ - 35.96556, - 4.5896 - ], - [ - 35.96285, - 4.58548 - ], - [ - 35.96015, - 4.57896 - ], - [ - 35.95812, - 4.5706 - ], - [ - 35.95623, - 4.56435 - ], - [ - 35.94118, - 4.57458 - ], - [ - 35.94748, - 4.62829 - ], - [ - 35.81508, - 4.77759 - ], - [ - 35.81339, - 5.09435 - ], - [ - 35.81762, - 5.11242 - ], - [ - 35.82843, - 5.11814 - ], - [ - 35.83833, - 5.13065 - ], - [ - 35.85068, - 5.14781 - ], - [ - 35.85764, - 5.16118 - ], - [ - 35.85913, - 5.18295 - ], - [ - 35.84708, - 5.20092 - ], - [ - 35.82983, - 5.22093 - ], - [ - 35.82296, - 5.24535 - ], - [ - 35.82943, - 5.26571 - ], - [ - 35.84138, - 5.27384 - ], - [ - 35.84498, - 5.27525 - ], - [ - 35.84633, - 5.27728 - ], - [ - 35.85172, - 5.28591 - ], - [ - 35.86341, - 5.30068 - ], - [ - 35.85655, - 5.32166 - ], - [ - 35.83664, - 5.32877 - ], - [ - 35.82216, - 5.33415 - ], - [ - 35.80518, - 5.34243 - ], - [ - 35.78508, - 5.3417 - ], - [ - 35.77441, - 5.35425 - ], - [ - 35.76609, - 5.34414 - ], - [ - 35.75726, - 5.34738 - ], - [ - 35.75089, - 5.35865 - ], - [ - 35.74496, - 5.3743 - ], - [ - 35.72663, - 5.37783 - ], - [ - 35.70966, - 5.38651 - ], - [ - 35.68864, - 5.3864 - ], - [ - 35.66356, - 5.38699 - ], - [ - 35.65314, - 5.3928 - ], - [ - 35.63825, - 5.38776 - ], - [ - 35.61748, - 5.38457 - ], - [ - 35.61446, - 5.40301 - ], - [ - 35.60161, - 5.39706 - ], - [ - 35.58187, - 5.41556 - ], - [ - 35.5611, - 5.41159 - ], - [ - 35.53621, - 5.42069 - ], - [ - 35.52692, - 5.42475 - ], - [ - 35.51655, - 5.4188 - ], - [ - 35.5057, - 5.42238 - ], - [ - 35.48811, - 5.41187 - ], - [ - 35.4626, - 5.40587 - ], - [ - 35.43879, - 5.37638 - ], - [ - 35.42367, - 5.37188 - ], - [ - 35.41308, - 5.36501 - ], - [ - 35.39141, - 5.35987 - ], - [ - 35.37267, - 5.35619 - ], - [ - 35.35353, - 5.34118 - ], - [ - 35.3303, - 5.33226 - ], - [ - 35.32578, - 5.33289 - ], - [ - 35.32487, - 5.33406 - ], - [ - 35.32124, - 5.33648 - ], - [ - 35.30835, - 5.34166 - ], - [ - 35.30062, - 5.34994 - ], - [ - 35.29355, - 5.36597 - ], - [ - 35.2932, - 5.3926 - ], - [ - 35.29692, - 5.41909 - ], - [ - 35.30478, - 5.43018 - ], - [ - 35.31576, - 5.44969 - ], - [ - 35.31203, - 5.47471 - ], - [ - 35.31059, - 5.49461 - ], - [ - 35.30853, - 5.50095 - ], - [ - 35.31078, - 5.50095 - ], - [ - 35.29166, - 5.51361 - ], - [ - 35.3108, - 5.53866 - ], - [ - 35.32757, - 5.56633 - ], - [ - 35.33976, - 5.59508 - ], - [ - 35.35659, - 5.61931 - ], - [ - 35.37568, - 5.64356 - ], - [ - 35.38565, - 5.66771 - ], - [ - 35.37955, - 5.69853 - ], - [ - 35.37006, - 5.72587 - ], - [ - 35.36762, - 5.73843 - ], - [ - 35.35238, - 5.76913 - ], - [ - 35.33264, - 5.79521 - ], - [ - 35.31396, - 5.82702 - ], - [ - 35.29647, - 5.8554 - ], - [ - 35.26975, - 5.89169 - ], - [ - 35.24883, - 5.92003 - ], - [ - 35.23135, - 5.94841 - ], - [ - 35.21953, - 5.97915 - ], - [ - 35.21577, - 6.0054 - ], - [ - 35.22129, - 6.02033 - ], - [ - 35.23478, - 6.0365 - ], - [ - 35.24948, - 6.04811 - ], - [ - 35.27795, - 6.05416 - ], - [ - 35.30094, - 6.04186 - ], - [ - 35.32168, - 6.02724 - ], - [ - 35.33682, - 6.00341 - ], - [ - 35.34726, - 5.99095 - ], - [ - 35.36673, - 5.98661 - ], - [ - 35.37686, - 5.99817 - ], - [ - 35.37668, - 6.01189 - ], - [ - 35.36852, - 6.02551 - ], - [ - 35.35689, - 6.04138 - ], - [ - 35.35205, - 6.06305 - ], - [ - 35.36208, - 6.0826 - ], - [ - 35.38586, - 6.09775 - ], - [ - 35.40894, - 6.07858 - ], - [ - 35.42634, - 6.05707 - ], - [ - 35.44373, - 6.03669 - ], - [ - 35.4681, - 6.00611 - ], - [ - 35.4945, - 5.99499 - ], - [ - 35.51739, - 5.99068 - ], - [ - 35.579, - 5.99484 - ], - [ - 35.60749, - 5.99861 - ], - [ - 35.63485, - 6.00237 - ], - [ - 35.65884, - 6.00151 - ], - [ - 35.67969, - 5.99765 - ], - [ - 35.679686, - 5.997981 - ], - [ - 35.680358, - 5.978738 - ], - [ - 35.680552, - 5.963856 - ], - [ - 35.673804, - 5.961738 - ], - [ - 35.666915, - 5.970444 - ], - [ - 35.654132, - 5.963511 - ], - [ - 35.626074, - 5.933371 - ], - [ - 35.611298, - 5.923702 - ], - [ - 35.602654, - 5.911408 - ], - [ - 35.604821, - 5.901287 - ], - [ - 35.601569, - 5.891094 - ], - [ - 35.582866, - 5.875792 - ], - [ - 35.564727, - 5.860153 - ], - [ - 35.534527, - 5.839446 - ], - [ - 35.517698, - 5.831775 - ], - [ - 35.492133, - 5.819247 - ], - [ - 35.423555, - 5.822905 - ], - [ - 35.436251, - 5.787052 - ], - [ - 35.478403, - 5.74443 - ], - [ - 35.498674, - 5.722615 - ], - [ - 35.513777, - 5.683348 - ], - [ - 35.548109, - 5.650786 - ], - [ - 35.549016, - 5.643075 - ], - [ - 35.57613, - 5.617044 - ], - [ - 35.587276, - 5.603809 - ], - [ - 35.597344, - 5.581658 - ], - [ - 35.597344, - 5.559508 - ], - [ - 35.588365, - 5.530185 - ], - [ - 35.578739, - 5.497653 - ], - [ - 35.575194, - 5.487016 - ], - [ - 35.57468, - 5.473161 - ], - [ - 35.57497, - 5.455445 - ], - [ - 35.604835, - 5.453133 - ], - [ - 35.613378, - 5.440668 - ], - [ - 35.624456, - 5.412398 - ], - [ - 35.647875, - 5.401061 - ], - [ - 35.666641, - 5.425066 - ], - [ - 35.675178, - 5.448469 - ], - [ - 35.686135, - 5.464916 - ], - [ - 35.703705, - 5.473995 - ], - [ - 35.718018, - 5.483031 - ], - [ - 35.725821, - 5.491517 - ], - [ - 35.740195, - 5.495894 - ], - [ - 35.764505, - 5.487822 - ], - [ - 35.775847, - 5.474458 - ], - [ - 35.783687, - 5.464745 - ], - [ - 35.799988, - 5.457998 - ], - [ - 35.806702, - 5.450466 - ], - [ - 35.808302, - 5.428627 - ], - [ - 35.814755, - 5.415461 - ], - [ - 35.824362, - 5.414588 - ], - [ - 35.835489, - 5.424334 - ], - [ - 35.853267, - 5.425128 - ], - [ - 35.871178, - 5.428093 - ], - [ - 35.880813, - 5.424901 - ], - [ - 35.891511, - 5.416092 - ], - [ - 35.903719, - 5.418893 - ], - [ - 35.916846, - 5.427666 - ], - [ - 35.923284, - 5.43094 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf01516d", - "_rev":"1-5be9eb57b0dc1589e3a05077cd708ec7", - "type":"Feature", - "properties":{ - "GISNAME":"Omo West" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 35.903035, - 5.49182 - ], - [ - 35.902936, - 5.492111 - ], - [ - 35.90294, - 5.49178 - ], - [ - 35.903035, - 5.49182 - ], - [ - 35.903093, - 5.491651 - ], - [ - 35.929383, - 5.467652 - ], - [ - 35.929778, - 5.46397 - ], - [ - 35.930291, - 5.459177 - ], - [ - 35.923683, - 5.431143 - ], - [ - 35.916846, - 5.427666 - ], - [ - 35.903719, - 5.418893 - ], - [ - 35.891511, - 5.416092 - ], - [ - 35.880813, - 5.424901 - ], - [ - 35.871178, - 5.428093 - ], - [ - 35.853267, - 5.425128 - ], - [ - 35.835489, - 5.424334 - ], - [ - 35.824362, - 5.414588 - ], - [ - 35.814755, - 5.415461 - ], - [ - 35.808302, - 5.428627 - ], - [ - 35.806702, - 5.450466 - ], - [ - 35.799988, - 5.457998 - ], - [ - 35.783687, - 5.464745 - ], - [ - 35.775847, - 5.474458 - ], - [ - 35.764505, - 5.487822 - ], - [ - 35.740195, - 5.495894 - ], - [ - 35.725821, - 5.491517 - ], - [ - 35.718018, - 5.483031 - ], - [ - 35.703705, - 5.473995 - ], - [ - 35.686135, - 5.464916 - ], - [ - 35.675178, - 5.448469 - ], - [ - 35.666641, - 5.425066 - ], - [ - 35.647875, - 5.401061 - ], - [ - 35.624456, - 5.412398 - ], - [ - 35.613378, - 5.440668 - ], - [ - 35.604835, - 5.453133 - ], - [ - 35.57497, - 5.455445 - ], - [ - 35.57468, - 5.473161 - ], - [ - 35.575194, - 5.487016 - ], - [ - 35.578739, - 5.497653 - ], - [ - 35.588365, - 5.530185 - ], - [ - 35.597344, - 5.559508 - ], - [ - 35.597344, - 5.581658 - ], - [ - 35.587276, - 5.603809 - ], - [ - 35.57613, - 5.617044 - ], - [ - 35.549016, - 5.643075 - ], - [ - 35.548109, - 5.650786 - ], - [ - 35.513777, - 5.683348 - ], - [ - 35.498674, - 5.722615 - ], - [ - 35.478403, - 5.74443 - ], - [ - 35.436251, - 5.787052 - ], - [ - 35.423555, - 5.822905 - ], - [ - 35.492133, - 5.819247 - ], - [ - 35.517698, - 5.831775 - ], - [ - 35.534527, - 5.839446 - ], - [ - 35.564727, - 5.860153 - ], - [ - 35.582866, - 5.875792 - ], - [ - 35.601569, - 5.891094 - ], - [ - 35.604821, - 5.901287 - ], - [ - 35.602654, - 5.911408 - ], - [ - 35.611298, - 5.923702 - ], - [ - 35.626074, - 5.933371 - ], - [ - 35.654132, - 5.963511 - ], - [ - 35.666915, - 5.970444 - ], - [ - 35.673804, - 5.961738 - ], - [ - 35.680552, - 5.963856 - ], - [ - 35.680358, - 5.978738 - ], - [ - 35.679686, - 5.997981 - ], - [ - 35.67969, - 5.99765 - ], - [ - 35.676471, - 6.016921 - ], - [ - 35.678924, - 6.036573 - ], - [ - 35.671874, - 6.057454 - ], - [ - 35.664207, - 6.07359 - ], - [ - 35.670753, - 6.091265 - ], - [ - 35.690186, - 6.10843 - ], - [ - 35.704903, - 6.111361 - ], - [ - 35.714402, - 6.096621 - ], - [ - 35.721947, - 6.088977 - ], - [ - 35.728732, - 6.092161 - ], - [ - 35.734879, - 6.096575 - ], - [ - 35.754422, - 6.096826 - ], - [ - 35.779436, - 6.081663 - ], - [ - 35.789405, - 6.078383 - ], - [ - 35.793708, - 6.081534 - ], - [ - 35.793339, - 6.086174 - ], - [ - 35.784833, - 6.096285 - ], - [ - 35.782496, - 6.10926 - ], - [ - 35.785185, - 6.117345 - ], - [ - 35.791558, - 6.128572 - ], - [ - 35.79191, - 6.149631 - ], - [ - 35.80379, - 6.16712 - ], - [ - 35.805522, - 6.177359 - ], - [ - 35.808817, - 6.186689 - ], - [ - 35.817087, - 6.204079 - ], - [ - 35.839966, - 6.217894 - ], - [ - 35.857898, - 6.247879 - ], - [ - 35.884454, - 6.293524 - ], - [ - 35.898448, - 6.32304 - ], - [ - 35.905591, - 6.346722 - ], - [ - 35.918336, - 6.354968 - ], - [ - 35.927008, - 6.364512 - ], - [ - 35.94189, - 6.36402 - ], - [ - 35.953342, - 6.36753 - ], - [ - 35.960548, - 6.386492 - ], - [ - 35.968439, - 6.404788 - ], - [ - 35.968267, - 6.418941 - ], - [ - 35.973512, - 6.432486 - ], - [ - 35.97056, - 6.452671 - ], - [ - 35.979962, - 6.458177 - ], - [ - 35.988819, - 6.452892 - ], - [ - 35.998971, - 6.452341 - ], - [ - 36.000631, - 6.538632 - ], - [ - 36.003882, - 6.549455 - ], - [ - 36.022839, - 6.548334 - ], - [ - 36.039648, - 6.542041 - ], - [ - 36.047124, - 6.540274 - ], - [ - 36.056335, - 6.549201 - ], - [ - 36.069389, - 6.548428 - ], - [ - 36.078206, - 6.551317 - ], - [ - 36.086608, - 6.550023 - ], - [ - 36.10415, - 6.563688 - ], - [ - 36.109231, - 6.56746 - ], - [ - 36.113867, - 6.569371 - ], - [ - 36.119934, - 6.568514 - ], - [ - 36.124227, - 6.562192 - ], - [ - 36.125652, - 6.553636 - ], - [ - 36.12045, - 6.545662 - ], - [ - 36.11531, - 6.532413 - ], - [ - 36.111463, - 6.521817 - ], - [ - 36.113674, - 6.502718 - ], - [ - 36.142013, - 6.435404 - ], - [ - 36.116571, - 6.4234 - ], - [ - 36.093667, - 6.403551 - ], - [ - 36.073055, - 6.368433 - ], - [ - 36.046334, - 6.344766 - ], - [ - 36.04328, - 6.331788 - ], - [ - 36.054732, - 6.315755 - ], - [ - 36.049388, - 6.295143 - ], - [ - 36.036804, - 6.284847 - ], - [ - 36.022668, - 6.272239 - ], - [ - 36.011979, - 6.266132 - ], - [ - 35.997474, - 6.253153 - ], - [ - 35.995655, - 6.24406 - ], - [ - 35.995655, - 6.24406 - ], - [ - 35.992893, - 6.23025 - ], - [ - 35.989006, - 6.220101 - ], - [ - 35.979151, - 6.194369 - ], - [ - 35.942506, - 6.156197 - ], - [ - 35.940878, - 6.138289 - ], - [ - 35.940216, - 6.131003 - ], - [ - 35.947624, - 6.116559 - ], - [ - 35.955485, - 6.101229 - ], - [ - 35.971517, - 6.08367 - ], - [ - 35.997474, - 6.052369 - ], - [ - 36.001171, - 6.028956 - ], - [ - 36.002011, - 6.022191 - ], - [ - 36.001291, - 6.002745 - ], - [ - 35.996063, - 5.991888 - ], - [ - 35.991367, - 5.982133 - ], - [ - 35.987549, - 5.968391 - ], - [ - 35.986786, - 5.950832 - ], - [ - 35.987227, - 5.934953 - ], - [ - 35.987549, - 5.923348 - ], - [ - 35.983325, - 5.899813 - ], - [ - 35.978622, - 5.88062 - ], - [ - 35.972878, - 5.859852 - ], - [ - 35.967901, - 5.840799 - ], - [ - 35.965324, - 5.824499 - ], - [ - 35.963119, - 5.807305 - ], - [ - 35.964696, - 5.793511 - ], - [ - 35.968165, - 5.776269 - ], - [ - 35.975334, - 5.760735 - ], - [ - 35.97067, - 5.729236 - ], - [ - 35.963752, - 5.683954 - ], - [ - 35.952431, - 5.643929 - ], - [ - 35.950354, - 5.604555 - ], - [ - 35.949377, - 5.58209 - ], - [ - 35.943141, - 5.563382 - ], - [ - 35.939453, - 5.552316 - ], - [ - 35.91618, - 5.53452 - ], - [ - 35.900517, - 5.515671 - ], - [ - 35.89709, - 5.51127 - ], - [ - 35.89899, - 5.49926 - ], - [ - 35.90193, - 5.49529 - ], - [ - 35.90313, - 5.49243 - ], - [ - 35.90313, - 5.49186 - ], - [ - 35.903035, - 5.49182 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf015c8e", - "_rev":"1-4efba35313f3e91054f84300abebe042", - "type":"Feature", - "properties":{ - "GISNAME":"Omo", - "Species":"Eland, Buffalo, Zebra, Waterbuck, Greater and Lesser Kudus, Oryx, Grant's gazelle, Topi" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 42.619617, - 9.175271 - ], - [ - 42.868786, - 8.846259 - ], - [ - 42.906948, - 8.739341 - ], - [ - 42.956759, - 8.697203 - ], - [ - 43.029979, - 8.593505 - ], - [ - 43.083804, - 8.499527 - ], - [ - 43.12487, - 8.390196 - ], - [ - 42.158912, - 8.391393 - ], - [ - 42.148538, - 8.456323 - ], - [ - 42.133782, - 8.50849 - ], - [ - 42.084653, - 8.559167 - ], - [ - 42.054317, - 8.589573 - ], - [ - 42.056194, - 8.710743 - ], - [ - 42.061633, - 8.746497 - ], - [ - 42.044214, - 8.774452 - ], - [ - 42.046681, - 9.175334 - ], - [ - 42.619617, - 9.175271 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf0166ef", - "_rev":"1-3e2965ffc97ca8d8d0408fb6b78b45e4", - "type":"Feature", - "properties":{ - "GISNAME":"Babille", - "Species":"Elephant, Hamadryas Baboon, Cheetah and Leopard" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 37.248751, - 6.754733 - ], - [ - 37.189561, - 6.728004 - ], - [ - 37.12669, - 6.754562 - ], - [ - 37.061694, - 6.799013 - ], - [ - 37.071466, - 6.858132 - ], - [ - 37.097504, - 6.90301 - ], - [ - 37.13552, - 6.974808 - ], - [ - 37.1453, - 7.032163 - ], - [ - 37.175148, - 7.116488 - ], - [ - 37.233268, - 7.20813 - ], - [ - 37.359449, - 7.278452 - ], - [ - 37.371664, - 7.255549 - ], - [ - 37.402965, - 7.241807 - ], - [ - 37.41289, - 7.229592 - ], - [ - 37.43732, - 7.217377 - ], - [ - 37.465567, - 7.199055 - ], - [ - 37.489234, - 7.202108 - ], - [ - 37.519772, - 7.209743 - ], - [ - 37.529696, - 7.196764 - ], - [ - 37.525879, - 7.179205 - ], - [ - 37.493815, - 7.150194 - ], - [ - 37.464041, - 7.139506 - ], - [ - 37.460223, - 7.127291 - ], - [ - 37.45717, - 7.108205 - ], - [ - 37.454879, - 7.087592 - ], - [ - 37.444191, - 7.057055 - ], - [ - 37.43503, - 7.034152 - ], - [ - 37.429686, - 7.005141 - ], - [ - 37.423578, - 6.974603 - ], - [ - 37.421288, - 6.956281 - ], - [ - 37.424342, - 6.934905 - ], - [ - 37.424342, - 6.912765 - ], - [ - 37.422815, - 6.887571 - ], - [ - 37.4106, - 6.872303 - ], - [ - 37.399912, - 6.863141 - ], - [ - 37.385406, - 6.860088 - ], - [ - 37.370138, - 6.862378 - ], - [ - 37.351815, - 6.866959 - ], - [ - 37.325095, - 6.863905 - ], - [ - 37.308299, - 6.859324 - ], - [ - 37.296847, - 6.836421 - ], - [ - 37.282342, - 6.815045 - ], - [ - 37.270891, - 6.790615 - ], - [ - 37.26402, - 6.772292 - ], - [ - 37.248751, - 6.754733 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf017249", - "_rev":"1-f85369185c192c2c3b70b84336536fba", - "type":"Feature", - "properties":{ - "GISNAME":"Chebera Churchura" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 35.261, - 11.935279 - ], - [ - 35.26187, - 11.93563 - ], - [ - 35.263179, - 11.935793 - ], - [ - 35.26476, - 11.93633 - ], - [ - 35.27458, - 11.94108 - ], - [ - 35.2966, - 11.99857 - ], - [ - 35.29833, - 12.00436 - ], - [ - 35.3043, - 12.01619 - ], - [ - 35.3067, - 12.01606 - ], - [ - 35.31364, - 12.01487 - ], - [ - 35.31673, - 12.01417 - ], - [ - 35.32087, - 12.01397 - ], - [ - 35.32397, - 12.0143 - ], - [ - 35.32724, - 12.01508 - ], - [ - 35.33211, - 12.01724 - ], - [ - 35.33598, - 12.0194 - ], - [ - 35.33856, - 12.02128 - ], - [ - 35.34198, - 12.02586 - ], - [ - 35.34521, - 12.03606 - ], - [ - 35.34583, - 12.04031 - ], - [ - 35.3455, - 12.04307 - ], - [ - 35.34455, - 12.04991 - ], - [ - 35.34312, - 12.05388 - ], - [ - 35.34199, - 12.05911 - ], - [ - 35.3409, - 12.06141 - ], - [ - 35.33876, - 12.06436 - ], - [ - 35.33539, - 12.06719 - ], - [ - 35.33192, - 12.06924 - ], - [ - 35.353793, - 12.107732 - ], - [ - 35.3995, - 12.18819 - ], - [ - 35.40072, - 12.18755 - ], - [ - 35.40311, - 12.18719 - ], - [ - 35.40562, - 12.18626 - ], - [ - 35.409, - 12.18549 - ], - [ - 35.41233, - 12.18524 - ], - [ - 35.41385, - 12.18489 - ], - [ - 35.4197, - 12.18554 - ], - [ - 35.42368, - 12.18661 - ], - [ - 35.42666, - 12.18717 - ], - [ - 35.42977, - 12.188929 - ], - [ - 35.43494, - 12.19269 - ], - [ - 35.43861, - 12.19778 - ], - [ - 35.44269, - 12.205 - ], - [ - 35.44348, - 12.20804 - ], - [ - 35.44417, - 12.21516 - ], - [ - 35.44385, - 12.21883 - ], - [ - 35.44328, - 12.22073 - ], - [ - 35.4419, - 12.22419 - ], - [ - 35.44156, - 12.22591 - ], - [ - 35.43984, - 12.22931 - ], - [ - 35.43645, - 12.23409 - ], - [ - 35.43463, - 12.23595 - ], - [ - 35.42974, - 12.23885 - ], - [ - 35.475114, - 12.315401 - ], - [ - 35.591534, - 12.511956 - ], - [ - 35.594638, - 12.510243 - ], - [ - 35.599399, - 12.507044 - ], - [ - 35.60257, - 12.505626 - ], - [ - 35.606515, - 12.50743 - ], - [ - 35.611251, - 12.509238 - ], - [ - 35.614018, - 12.509607 - ], - [ - 35.617979, - 12.508192 - ], - [ - 35.619341, - 12.47315 - ], - [ - 35.623721, - 12.467088 - ], - [ - 35.628903, - 12.458885 - ], - [ - 35.636855, - 12.450335 - ], - [ - 35.641648, - 12.440701 - ], - [ - 35.645642, - 12.432851 - ], - [ - 35.627502, - 12.422766 - ], - [ - 35.629488, - 12.420986 - ], - [ - 35.63226, - 12.420282 - ], - [ - 35.639378, - 12.420311 - ], - [ - 35.652827, - 12.419651 - ], - [ - 35.662319, - 12.419333 - ], - [ - 35.674992, - 12.41581 - ], - [ - 35.682106, - 12.416554 - ], - [ - 35.686471, - 12.413712 - ], - [ - 35.694779, - 12.413031 - ], - [ - 35.706668, - 12.408075 - ], - [ - 35.720548, - 12.400267 - ], - [ - 35.717422, - 12.392746 - ], - [ - 35.715105, - 12.381655 - ], - [ - 35.713184, - 12.370566 - ], - [ - 35.713229, - 12.36163 - ], - [ - 35.717644, - 12.34878 - ], - [ - 35.719694, - 12.334492 - ], - [ - 35.726505, - 12.317009 - ], - [ - 35.725102, - 12.281625 - ], - [ - 35.725142, - 12.273765 - ], - [ - 35.741835, - 12.257398 - ], - [ - 35.743074, - 12.247042 - ], - [ - 35.749118, - 12.224917 - ], - [ - 35.763114, - 12.194612 - ], - [ - 35.7747, - 12.1718 - ], - [ - 35.797408, - 12.139395 - ], - [ - 35.802561, - 12.137274 - ], - [ - 35.808497, - 12.136584 - ], - [ - 35.814811, - 12.139468 - ], - [ - 35.821144, - 12.138423 - ], - [ - 35.826313, - 12.133087 - ], - [ - 35.827922, - 12.127738 - ], - [ - 35.824824, - 12.11487 - ], - [ - 35.82168, - 12.110929 - ], - [ - 35.820138, - 12.103067 - ], - [ - 35.820182, - 12.094498 - ], - [ - 35.80918, - 12.080171 - ], - [ - 35.798155, - 12.070486 - ], - [ - 35.793449, - 12.062612 - ], - [ - 35.783974, - 12.059003 - ], - [ - 35.778882, - 12.049343 - ], - [ - 35.776537, - 12.043622 - ], - [ - 35.771407, - 12.041459 - ], - [ - 35.765472, - 12.041791 - ], - [ - 35.762741, - 12.034284 - ], - [ - 35.757235, - 12.028193 - ], - [ - 35.754125, - 12.017472 - ], - [ - 35.747097, - 12.00684 - ], - [ - 35.737431, - 11.970404 - ], - [ - 35.732226, - 11.952558 - ], - [ - 35.719585, - 11.939174 - ], - [ - 35.696534, - 11.939174 - ], - [ - 35.683595, - 11.936709 - ], - [ - 35.680918, - 11.9362 - ], - [ - 35.670508, - 11.9362 - ], - [ - 35.668239, - 11.935152 - ], - [ - 35.660842, - 11.931738 - ], - [ - 35.658611, - 11.916123 - ], - [ - 35.649688, - 11.896046 - ], - [ - 35.613996, - 11.870764 - ], - [ - 35.596894, - 11.864816 - ], - [ - 35.581278, - 11.85738 - ], - [ - 35.57533, - 11.841021 - ], - [ - 35.572355, - 11.817226 - ], - [ - 35.55674, - 11.805329 - ], - [ - 35.552279, - 11.793432 - ], - [ - 35.541869, - 11.78897 - ], - [ - 35.531458, - 11.791201 - ], - [ - 35.513613, - 11.797893 - ], - [ - 35.481639, - 11.794919 - ], - [ - 35.459331, - 11.794919 - ], - [ - 35.439254, - 11.791945 - ], - [ - 35.424383, - 11.788227 - ], - [ - 35.408768, - 11.790458 - ], - [ - 35.393152, - 11.787483 - ], - [ - 35.381255, - 11.788227 - ], - [ - 35.372332, - 11.790458 - ], - [ - 35.353743, - 11.791945 - ], - [ - 35.333116, - 11.793372 - ], - [ - 35.325486, - 11.794175 - ], - [ - 35.311358, - 11.797893 - ], - [ - 35.302435, - 11.810534 - ], - [ - 35.300412, - 11.821159 - ], - [ - 35.296371, - 11.831943 - ], - [ - 35.285333, - 11.852918 - ], - [ - 35.283846, - 11.867046 - ], - [ - 35.291282, - 11.881918 - ], - [ - 35.292769, - 11.89902 - ], - [ - 35.283846, - 11.913892 - ], - [ - 35.277897, - 11.928764 - ], - [ - 35.261, - 11.935279 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf017dcb", - "_rev":"1-122387ab83da28cd8685d22668128d5a", - "type":"Feature", - "properties":{ - "GISNAME":"Alatish" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 39.821117, - 7.029291 - ], - [ - 39.841126, - 7.024384 - ], - [ - 39.851245, - 7.016343 - ], - [ - 39.86069, - 7.007407 - ], - [ - 39.878449, - 7.004284 - ], - [ - 39.914736, - 6.988882 - ], - [ - 39.923274, - 6.986177 - ], - [ - 39.933467, - 6.980282 - ], - [ - 39.936858, - 6.977397 - ], - [ - 39.938265, - 6.969626 - ], - [ - 39.95673, - 6.921027 - ], - [ - 39.90628, - 6.86118 - ], - [ - 39.886634, - 6.784227 - ], - [ - 39.846996, - 6.76898 - ], - [ - 39.831949, - 6.585502 - ], - [ - 39.773445, - 6.472122 - ], - [ - 39.559991, - 6.464723 - ], - [ - 39.574046, - 6.526674 - ], - [ - 39.574891, - 6.534989 - ], - [ - 39.577237, - 6.540961 - ], - [ - 39.579155, - 6.546932 - ], - [ - 39.578504, - 6.553966 - ], - [ - 39.574216, - 6.560355 - ], - [ - 39.567147, - 6.566102 - ], - [ - 39.567572, - 6.568234 - ], - [ - 39.569066, - 6.57122 - ], - [ - 39.572485, - 6.575701 - ], - [ - 39.575263, - 6.578689 - ], - [ - 39.579112, - 6.580612 - ], - [ - 39.57975, - 6.58381 - ], - [ - 39.576106, - 6.588921 - ], - [ - 39.576742, - 6.593399 - ], - [ - 39.579946, - 6.598305 - ], - [ - 39.580369, - 6.602143 - ], - [ - 39.579293, - 6.606618 - ], - [ - 39.577148, - 6.610878 - ], - [ - 39.575, - 6.616204 - ], - [ - 39.576062, - 6.623239 - ], - [ - 39.57777, - 6.626439 - ], - [ - 39.580117, - 6.631984 - ], - [ - 39.580111, - 6.636673 - ], - [ - 39.580534, - 6.64051 - ], - [ - 39.582886, - 6.642645 - ], - [ - 39.582878, - 6.649039 - ], - [ - 39.584584, - 6.653944 - ], - [ - 39.583937, - 6.657992 - ], - [ - 39.58233, - 6.661819 - ], - [ - 39.579644, - 6.667365 - ], - [ - 39.579752, - 6.672842 - ], - [ - 39.580914, - 6.678663 - ], - [ - 39.582192, - 6.68378 - ], - [ - 39.584759, - 6.685062 - ], - [ - 39.586256, - 6.686556 - ], - [ - 39.587536, - 6.690181 - ], - [ - 39.584958, - 6.697211 - ], - [ - 39.583878, - 6.70467 - ], - [ - 39.582801, - 6.709997 - ], - [ - 39.581083, - 6.713831 - ], - [ - 39.579155, - 6.714681 - ], - [ - 39.576368, - 6.717661 - ], - [ - 39.575508, - 6.72107 - ], - [ - 39.569506, - 6.726178 - ], - [ - 39.566989, - 6.728753 - ], - [ - 39.563211, - 6.732617 - ], - [ - 39.559428, - 6.737673 - ], - [ - 39.557005, - 6.744752 - ], - [ - 39.555129, - 6.750029 - ], - [ - 39.552768, - 6.753862 - ], - [ - 39.552118, - 6.759402 - ], - [ - 39.548687, - 6.76366 - ], - [ - 39.544827, - 6.767704 - ], - [ - 39.542889, - 6.775161 - ], - [ - 39.539885, - 6.779419 - ], - [ - 39.535878, - 6.782003 - ], - [ - 39.531312, - 6.784948 - ], - [ - 39.525733, - 6.792562 - ], - [ - 39.523727, - 6.793862 - ], - [ - 39.525862, - 6.809468 - ], - [ - 39.53149, - 6.829915 - ], - [ - 39.541343, - 6.841878 - ], - [ - 39.544192, - 6.846998 - ], - [ - 39.531364, - 6.848062 - ], - [ - 39.507987, - 6.8451 - ], - [ - 39.501573, - 6.845633 - ], - [ - 39.497379, - 6.84958 - ], - [ - 39.497972, - 6.856389 - ], - [ - 39.50081, - 6.86321 - ], - [ - 39.498543, - 6.866601 - ], - [ - 39.490499, - 6.871095 - ], - [ - 39.482107, - 6.879558 - ], - [ - 39.483027, - 6.885518 - ], - [ - 39.475628, - 6.889449 - ], - [ - 39.468884, - 6.891397 - ], - [ - 39.466295, - 6.89507 - ], - [ - 39.505082, - 6.94066 - ], - [ - 39.53136, - 6.987322 - ], - [ - 39.557984, - 7.030304 - ], - [ - 39.559917, - 7.032276 - ], - [ - 39.572042, - 7.031576 - ], - [ - 39.582039, - 7.031355 - ], - [ - 39.584989, - 7.0324 - ], - [ - 39.586509, - 7.035431 - ], - [ - 39.588699, - 7.035528 - ], - [ - 39.590314, - 7.038086 - ], - [ - 39.590976, - 7.041968 - ], - [ - 39.593832, - 7.042445 - ], - [ - 39.595448, - 7.044719 - ], - [ - 39.598493, - 7.046332 - ], - [ - 39.59906, - 7.049741 - ], - [ - 39.601995, - 7.051564 - ], - [ - 39.605303, - 7.053959 - ], - [ - 39.60886, - 7.056663 - ], - [ - 39.612599, - 7.050022 - ], - [ - 39.616342, - 7.04433 - ], - [ - 39.619962, - 7.038265 - ], - [ - 39.62358, - 7.033315 - ], - [ - 39.628448, - 7.024899 - ], - [ - 39.701561, - 7.076483 - ], - [ - 39.713266, - 7.080703 - ], - [ - 39.722604, - 7.090237 - ], - [ - 39.723001, - 7.152366 - ], - [ - 39.747513, - 7.152385 - ], - [ - 39.764609, - 7.146587 - ], - [ - 39.771357, - 7.144134 - ], - [ - 39.776531, - 7.141232 - ], - [ - 39.780134, - 7.133636 - ], - [ - 39.778687, - 7.127097 - ], - [ - 39.77493, - 7.123006 - ], - [ - 39.775502, - 7.117465 - ], - [ - 39.776091, - 7.111759 - ], - [ - 39.775067, - 7.103613 - ], - [ - 39.769967, - 7.098198 - ], - [ - 39.770433, - 7.089582 - ], - [ - 39.779049, - 7.073965 - ], - [ - 39.785573, - 7.068158 - ], - [ - 39.790305, - 7.052517 - ], - [ - 39.79706, - 7.033747 - ], - [ - 39.821117, - 7.029291 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf017ede", - "_rev":"1-881e0f4c878193318c7a6537fa7dfd14", - "type":"Feature", - "properties":{ - "GISNAME":"Bale Mountains", - "Species":"Mountain Nyala, Ethiopian Wolf, Menelik's Bushbuck, Giant Mole Rat" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 39.817018, - 7.160086 - ], - [ - 39.815865, - 7.119338 - ], - [ - 39.809225, - 7.092414 - ], - [ - 39.844573, - 7.063982 - ], - [ - 39.906588, - 7.041924 - ], - [ - 39.964738, - 6.997577 - ], - [ - 40.002924, - 6.939176 - ], - [ - 39.987901, - 6.864357 - ], - [ - 39.947513, - 6.823169 - ], - [ - 39.9212, - 6.767144 - ], - [ - 39.883466, - 6.734508 - ], - [ - 39.874692, - 6.584012 - ], - [ - 39.80682, - 6.438215 - ], - [ - 39.518405, - 6.425724 - ], - [ - 39.53187, - 6.542355 - ], - [ - 39.521553, - 6.61067 - ], - [ - 39.529472, - 6.685313 - ], - [ - 39.488094, - 6.77214 - ], - [ - 39.497677, - 6.809505 - ], - [ - 39.452506, - 6.835382 - ], - [ - 39.432385, - 6.898718 - ], - [ - 39.506133, - 7.009858 - ], - [ - 39.598023, - 7.093458 - ], - [ - 39.669703, - 7.141439 - ], - [ - 39.711605, - 7.180262 - ], - [ - 39.726876, - 7.207737 - ], - [ - 39.792971, - 7.204366 - ], - [ - 39.817018, - 7.160086 - ] - ], - [ - [ - 39.701561, - 7.076483 - ], - [ - 39.628448, - 7.024899 - ], - [ - 39.62358, - 7.033315 - ], - [ - 39.619962, - 7.038265 - ], - [ - 39.616342, - 7.04433 - ], - [ - 39.612599, - 7.050022 - ], - [ - 39.60886, - 7.056663 - ], - [ - 39.605303, - 7.053959 - ], - [ - 39.601995, - 7.051564 - ], - [ - 39.59906, - 7.049741 - ], - [ - 39.598493, - 7.046332 - ], - [ - 39.595448, - 7.044719 - ], - [ - 39.593832, - 7.042445 - ], - [ - 39.590976, - 7.041968 - ], - [ - 39.590314, - 7.038086 - ], - [ - 39.588699, - 7.035528 - ], - [ - 39.586509, - 7.035431 - ], - [ - 39.584989, - 7.0324 - ], - [ - 39.582039, - 7.031355 - ], - [ - 39.572042, - 7.031576 - ], - [ - 39.559917, - 7.032276 - ], - [ - 39.557984, - 7.030304 - ], - [ - 39.53136, - 6.987322 - ], - [ - 39.505082, - 6.94066 - ], - [ - 39.466295, - 6.89507 - ], - [ - 39.468884, - 6.891397 - ], - [ - 39.475628, - 6.889449 - ], - [ - 39.483027, - 6.885518 - ], - [ - 39.482107, - 6.879558 - ], - [ - 39.490499, - 6.871095 - ], - [ - 39.498543, - 6.866601 - ], - [ - 39.50081, - 6.86321 - ], - [ - 39.497972, - 6.856389 - ], - [ - 39.497379, - 6.84958 - ], - [ - 39.501573, - 6.845633 - ], - [ - 39.507987, - 6.8451 - ], - [ - 39.531364, - 6.848062 - ], - [ - 39.544192, - 6.846998 - ], - [ - 39.541343, - 6.841878 - ], - [ - 39.53149, - 6.829915 - ], - [ - 39.525862, - 6.809468 - ], - [ - 39.523727, - 6.793862 - ], - [ - 39.525733, - 6.792562 - ], - [ - 39.531312, - 6.784948 - ], - [ - 39.535878, - 6.782003 - ], - [ - 39.539885, - 6.779419 - ], - [ - 39.542889, - 6.775161 - ], - [ - 39.544827, - 6.767704 - ], - [ - 39.548687, - 6.76366 - ], - [ - 39.552118, - 6.759402 - ], - [ - 39.552768, - 6.753862 - ], - [ - 39.555129, - 6.750029 - ], - [ - 39.557005, - 6.744752 - ], - [ - 39.559428, - 6.737673 - ], - [ - 39.563211, - 6.732617 - ], - [ - 39.566989, - 6.728753 - ], - [ - 39.569506, - 6.726178 - ], - [ - 39.575508, - 6.72107 - ], - [ - 39.576368, - 6.717661 - ], - [ - 39.579155, - 6.714681 - ], - [ - 39.581083, - 6.713831 - ], - [ - 39.582801, - 6.709997 - ], - [ - 39.583878, - 6.70467 - ], - [ - 39.584958, - 6.697211 - ], - [ - 39.587536, - 6.690181 - ], - [ - 39.586256, - 6.686556 - ], - [ - 39.584759, - 6.685062 - ], - [ - 39.582192, - 6.68378 - ], - [ - 39.580914, - 6.678663 - ], - [ - 39.579752, - 6.672842 - ], - [ - 39.579644, - 6.667365 - ], - [ - 39.58233, - 6.661819 - ], - [ - 39.583937, - 6.657992 - ], - [ - 39.584584, - 6.653944 - ], - [ - 39.582878, - 6.649039 - ], - [ - 39.582886, - 6.642645 - ], - [ - 39.580534, - 6.64051 - ], - [ - 39.580111, - 6.636673 - ], - [ - 39.580117, - 6.631984 - ], - [ - 39.57777, - 6.626439 - ], - [ - 39.576062, - 6.623239 - ], - [ - 39.575, - 6.616204 - ], - [ - 39.577148, - 6.610878 - ], - [ - 39.579293, - 6.606618 - ], - [ - 39.580369, - 6.602143 - ], - [ - 39.579946, - 6.598305 - ], - [ - 39.576742, - 6.593399 - ], - [ - 39.576106, - 6.588921 - ], - [ - 39.57975, - 6.58381 - ], - [ - 39.579112, - 6.580612 - ], - [ - 39.575263, - 6.578689 - ], - [ - 39.572485, - 6.575701 - ], - [ - 39.569066, - 6.57122 - ], - [ - 39.567572, - 6.568234 - ], - [ - 39.567147, - 6.566102 - ], - [ - 39.574216, - 6.560355 - ], - [ - 39.578504, - 6.553966 - ], - [ - 39.579155, - 6.546932 - ], - [ - 39.577237, - 6.540961 - ], - [ - 39.574891, - 6.534989 - ], - [ - 39.574046, - 6.526674 - ], - [ - 39.559991, - 6.464723 - ], - [ - 39.773445, - 6.472122 - ], - [ - 39.831949, - 6.585502 - ], - [ - 39.846996, - 6.76898 - ], - [ - 39.886634, - 6.784227 - ], - [ - 39.90628, - 6.86118 - ], - [ - 39.95673, - 6.921027 - ], - [ - 39.938265, - 6.969626 - ], - [ - 39.936858, - 6.977397 - ], - [ - 39.933467, - 6.980282 - ], - [ - 39.923274, - 6.986177 - ], - [ - 39.914736, - 6.988882 - ], - [ - 39.878449, - 7.004284 - ], - [ - 39.86069, - 7.007407 - ], - [ - 39.851245, - 7.016343 - ], - [ - 39.841126, - 7.024384 - ], - [ - 39.821117, - 7.029291 - ], - [ - 39.79706, - 7.033747 - ], - [ - 39.790305, - 7.052517 - ], - [ - 39.785573, - 7.068158 - ], - [ - 39.779049, - 7.073965 - ], - [ - 39.770433, - 7.089582 - ], - [ - 39.769967, - 7.098198 - ], - [ - 39.775067, - 7.103613 - ], - [ - 39.776091, - 7.111759 - ], - [ - 39.775502, - 7.117465 - ], - [ - 39.77493, - 7.123006 - ], - [ - 39.778687, - 7.127097 - ], - [ - 39.780134, - 7.133636 - ], - [ - 39.776531, - 7.141232 - ], - [ - 39.771357, - 7.144134 - ], - [ - 39.764609, - 7.146587 - ], - [ - 39.747513, - 7.152385 - ], - [ - 39.723001, - 7.152366 - ], - [ - 39.722604, - 7.090237 - ], - [ - 39.713266, - 7.080703 - ], - [ - 39.701561, - 7.076483 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf01889a", - "_rev":"1-a39ecf3aa0002af38418fc2d3d73874a", - "type":"Feature", - "properties":{ - "GISNAME":"Bale" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 40.006866, - 7.41975 - ], - [ - 40.063966, - 7.41929 - ], - [ - 40.094736, - 7.42421 - ], - [ - 40.197686, - 7.40947 - ], - [ - 40.217276, - 7.39602 - ], - [ - 40.241316, - 7.3906 - ], - [ - 40.266536, - 7.38292 - ], - [ - 40.315586, - 7.38692 - ], - [ - 40.360126, - 7.3863 - ], - [ - 40.425366, - 7.37339 - ], - [ - 40.494156, - 7.3514 - ], - [ - 40.532256, - 7.31878 - ], - [ - 40.537066, - 7.29945 - ], - [ - 40.528296, - 7.27198 - ], - [ - 40.519326, - 7.25819 - ], - [ - 40.489896, - 7.23845 - ], - [ - 40.460296, - 7.2324 - ], - [ - 40.432806, - 7.23892 - ], - [ - 40.400706, - 7.2488 - ], - [ - 40.362956, - 7.25406 - ], - [ - 40.334266, - 7.26512 - ], - [ - 40.198471, - 7.286289 - ], - [ - 40.117896, - 7.30932 - ], - [ - 40.063927, - 7.332865 - ], - [ - 40.012636, - 7.32632 - ], - [ - 39.968146, - 7.32352 - ], - [ - 39.946656, - 7.3073 - ], - [ - 39.941256, - 7.28329 - ], - [ - 39.951816, - 7.26174 - ], - [ - 39.970286, - 7.24485 - ], - [ - 39.998674, - 7.210577 - ], - [ - 40.029506, - 7.16799 - ], - [ - 40.053736, - 7.14888 - ], - [ - 40.084626, - 7.14354 - ], - [ - 40.122306, - 7.14399 - ], - [ - 40.176488, - 7.144142 - ], - [ - 40.217056, - 7.14511 - ], - [ - 40.282206, - 7.14018 - ], - [ - 40.335766, - 7.134572 - ], - [ - 40.387929, - 7.118181 - ], - [ - 40.414501, - 7.091747 - ], - [ - 40.447926, - 7.03831 - ], - [ - 40.475836, - 6.9987 - ], - [ - 40.508146, - 6.97284 - ], - [ - 40.575256, - 6.90401 - ], - [ - 40.635476, - 6.83738 - ], - [ - 40.641216, - 6.819549 - ], - [ - 40.645366, - 6.77813 - ], - [ - 40.637716, - 6.75178 - ], - [ - 40.621936, - 6.73561 - ], - [ - 40.550336, - 6.70964 - ], - [ - 40.531136, - 6.69343 - ], - [ - 40.522356, - 6.66592 - ], - [ - 40.539796, - 6.641 - ], - [ - 40.536636, - 6.62041 - ], - [ - 40.526616, - 6.60087 - ], - [ - 40.521236, - 6.57454 - ], - [ - 40.529616, - 6.54494 - ], - [ - 40.555366, - 6.49498 - ], - [ - 40.555766, - 6.46414 - ], - [ - 40.551456, - 6.44467 - ], - [ - 40.506386, - 6.39729 - ], - [ - 40.432516, - 6.37014 - ], - [ - 40.398166, - 6.37773 - ], - [ - 40.377246, - 6.40604 - ], - [ - 40.391376, - 6.4622 - ], - [ - 40.371536, - 6.49509 - ], - [ - 40.340416, - 6.51757 - ], - [ - 40.326576, - 6.52883 - ], - [ - 40.324086, - 6.54479 - ], - [ - 40.341946, - 6.57698 - ], - [ - 40.344204, - 6.624822 - ], - [ - 40.330696, - 6.65337 - ], - [ - 40.288106, - 6.68027 - ], - [ - 40.277576, - 6.69627 - ], - [ - 40.302166, - 6.74096 - ], - [ - 40.295756, - 6.79568 - ], - [ - 40.272456, - 6.83194 - ], - [ - 40.210636, - 6.84491 - ], - [ - 40.160536, - 6.83404 - ], - [ - 40.126586, - 6.80966 - ], - [ - 40.087216, - 6.76353 - ], - [ - 40.079546, - 6.73832 - ], - [ - 40.075376, - 6.70744 - ], - [ - 40.068026, - 6.65711 - ], - [ - 40.065006, - 6.62624 - ], - [ - 40.061166, - 6.56909 - ], - [ - 40.048976, - 6.54039 - ], - [ - 40.012956, - 6.49998 - ], - [ - 39.957156, - 6.4879 - ], - [ - 39.934126, - 6.49273 - ], - [ - 39.908036, - 6.4896 - ], - [ - 39.875466, - 6.46106 - ], - [ - 39.861946, - 6.44498 - ], - [ - 39.842526, - 6.43399 - ], - [ - 39.835241, - 6.40818 - ], - [ - 39.821754, - 6.377827 - ], - [ - 39.75552, - 6.377459 - ], - [ - 39.698436, - 6.375124 - ], - [ - 39.641066, - 6.38361 - ], - [ - 39.621296, - 6.37941 - ], - [ - 39.584046, - 6.37837 - ], - [ - 39.553196, - 6.38029 - ], - [ - 39.529176, - 6.38343 - ], - [ - 39.502806, - 6.39226 - ], - [ - 39.453406, - 6.41567 - ], - [ - 39.424716, - 6.42675 - ], - [ - 39.412076, - 6.43346 - ], - [ - 39.381276, - 6.435214 - ], - [ - 39.362826, - 6.4443 - ], - [ - 39.319836, - 6.41408 - ], - [ - 39.300476, - 6.41043 - ], - [ - 39.268556, - 6.41738 - ], - [ - 39.254356, - 6.4453 - ], - [ - 39.218646, - 6.47001 - ], - [ - 39.193506, - 6.47086 - ], - [ - 39.128526, - 6.46323 - ], - [ - 39.087696, - 6.46507 - ], - [ - 39.074666, - 6.47859 - ], - [ - 39.034196, - 6.51809 - ], - [ - 39.009056, - 6.52008 - ], - [ - 38.944106, - 6.50903 - ], - [ - 38.930256, - 6.52143 - ], - [ - 38.893436, - 6.5427 - ], - [ - 38.855266, - 6.58108 - ], - [ - 38.836316, - 6.63453 - ], - [ - 38.828806, - 6.68583 - ], - [ - 38.819056, - 6.73368 - ], - [ - 38.788546, - 6.79839 - ], - [ - 38.762946, - 6.83576 - ], - [ - 38.760406, - 6.85628 - ], - [ - 38.800236, - 6.86589 - ], - [ - 38.7999, - 6.8967 - ], - [ - 38.858803, - 6.931185 - ], - [ - 38.923556, - 6.95409 - ], - [ - 38.949098, - 6.969933 - ], - [ - 39.0484, - 7.01833 - ], - [ - 39.080146, - 7.03126 - ], - [ - 39.121166, - 7.03745 - ], - [ - 39.178036, - 7.05524 - ], - [ - 39.21111, - 7.06247 - ], - [ - 39.250738, - 7.079277 - ], - [ - 39.250751, - 7.079283 - ], - [ - 39.260967, - 7.084024 - ], - [ - 39.31555, - 7.10935 - ], - [ - 39.33354, - 7.13124 - ], - [ - 39.35608, - 7.15432 - ], - [ - 39.37738, - 7.18537 - ], - [ - 39.410847, - 7.218484 - ], - [ - 39.410868, - 7.218505 - ], - [ - 39.410881, - 7.218519 - ], - [ - 39.4326, - 7.24191 - ], - [ - 39.44508, - 7.24776 - ], - [ - 39.45861, - 7.26161 - ], - [ - 39.461924, - 7.232135 - ], - [ - 39.485496, - 7.20832 - ], - [ - 39.502706, - 7.20168 - ], - [ - 39.524196, - 7.21791 - ], - [ - 39.562056, - 7.29249 - ], - [ - 39.582146, - 7.32922 - ], - [ - 39.599056, - 7.34538 - ], - [ - 39.659196, - 7.3746 - ], - [ - 39.706886, - 7.39569 - ], - [ - 39.769396, - 7.41809 - ], - [ - 39.861726, - 7.43058 - ], - [ - 39.929835, - 7.431324 - ], - [ - 40.006866, - 7.41975 - ] - ], - [ - [ - 39.726876, - 7.207737 - ], - [ - 39.711605, - 7.180262 - ], - [ - 39.669703, - 7.141439 - ], - [ - 39.598023, - 7.093458 - ], - [ - 39.506133, - 7.009858 - ], - [ - 39.432385, - 6.898718 - ], - [ - 39.452506, - 6.835382 - ], - [ - 39.497677, - 6.809505 - ], - [ - 39.488094, - 6.77214 - ], - [ - 39.529472, - 6.685313 - ], - [ - 39.521553, - 6.61067 - ], - [ - 39.53187, - 6.542355 - ], - [ - 39.518405, - 6.425724 - ], - [ - 39.80682, - 6.438215 - ], - [ - 39.874692, - 6.584012 - ], - [ - 39.883466, - 6.734508 - ], - [ - 39.9212, - 6.767144 - ], - [ - 39.947513, - 6.823169 - ], - [ - 39.987901, - 6.864357 - ], - [ - 40.002924, - 6.939176 - ], - [ - 39.964738, - 6.997577 - ], - [ - 39.906588, - 7.041924 - ], - [ - 39.844573, - 7.063982 - ], - [ - 39.809225, - 7.092414 - ], - [ - 39.815865, - 7.119338 - ], - [ - 39.817018, - 7.160086 - ], - [ - 39.792971, - 7.204366 - ], - [ - 39.726876, - 7.207737 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf01985e", - "_rev":"1-090f8e3e73d42f9a2d3342bdc449ff03", - "type":"Feature", - "properties":{ - "GISNAME":"Bale" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 37.504921, - 14.185659 - ], - [ - 37.52688, - 14.1616 - ], - [ - 37.529259, - 14.132451 - ], - [ - 37.537587, - 14.112821 - ], - [ - 37.557813, - 14.103898 - ], - [ - 37.56971, - 14.09438 - ], - [ - 37.583392, - 14.087242 - ], - [ - 37.598344, - 14.054958 - ], - [ - 37.61373, - 14.025971 - ], - [ - 37.616704, - 14.012884 - ], - [ - 37.622653, - 13.993253 - ], - [ - 37.630258, - 13.976141 - ], - [ - 37.552716, - 13.890986 - ], - [ - 37.39823, - 13.897897 - ], - [ - 37.386798, - 13.896557 - ], - [ - 37.309982, - 13.767061 - ], - [ - 37.278635, - 13.783315 - ], - [ - 37.254254, - 13.798408 - ], - [ - 37.245546, - 13.805374 - ], - [ - 37.24643, - 13.821715 - ], - [ - 37.244385, - 13.837302 - ], - [ - 37.239161, - 13.847751 - ], - [ - 37.230453, - 13.857619 - ], - [ - 37.219424, - 13.865166 - ], - [ - 37.166017, - 13.880259 - ], - [ - 37.155081, - 13.891664 - ], - [ - 37.147441, - 13.900576 - ], - [ - 37.132929, - 13.906962 - ], - [ - 37.083272, - 13.942675 - ], - [ - 37.002029, - 13.995087 - ], - [ - 36.944198, - 14.028751 - ], - [ - 36.88938, - 14.055845 - ], - [ - 36.816845, - 14.077 - ], - [ - 36.740138, - 14.091511 - ], - [ - 36.698919, - 14.123604 - ], - [ - 36.669113, - 14.187182 - ], - [ - 36.650816, - 14.217064 - ], - [ - 36.650762, - 14.246364 - ], - [ - 36.648577, - 14.263892 - ], - [ - 36.651439, - 14.302891 - ], - [ - 36.656939, - 14.306561 - ], - [ - 36.658199, - 14.307101 - ], - [ - 36.661019, - 14.305991 - ], - [ - 36.665349, - 14.304671 - ], - [ - 36.669399, - 14.301181 - ], - [ - 36.677929, - 14.300001 - ], - [ - 36.683259, - 14.300271 - ], - [ - 36.686319, - 14.299501 - ], - [ - 36.693899, - 14.300381 - ], - [ - 36.703619, - 14.306241 - ], - [ - 36.708509, - 14.309021 - ], - [ - 36.711689, - 14.310061 - ], - [ - 36.713949, - 14.311171 - ], - [ - 36.716029, - 14.311481 - ], - [ - 36.723489, - 14.310651 - ], - [ - 36.728199, - 14.311981 - ], - [ - 36.735109, - 14.319331 - ], - [ - 36.737939, - 14.320661 - ], - [ - 36.739149, - 14.320681 - ], - [ - 36.743089, - 14.320601 - ], - [ - 36.745339, - 14.320551 - ], - [ - 36.748549, - 14.319821 - ], - [ - 36.757399, - 14.318911 - ], - [ - 36.769649, - 14.317041 - ], - [ - 36.777189, - 14.318461 - ], - [ - 36.784139, - 14.317521 - ], - [ - 36.794359, - 14.316901 - ], - [ - 36.803109, - 14.316281 - ], - [ - 36.813959, - 14.314721 - ], - [ - 36.819019, - 14.315161 - ], - [ - 36.820859, - 14.315631 - ], - [ - 36.823719, - 14.316021 - ], - [ - 36.825839, - 14.315411 - ], - [ - 36.827649, - 14.312491 - ], - [ - 36.828339, - 14.310611 - ], - [ - 36.828579, - 14.308741 - ], - [ - 36.830169, - 14.308961 - ], - [ - 36.831999, - 14.309831 - ], - [ - 36.835919, - 14.308461 - ], - [ - 36.839199, - 14.310471 - ], - [ - 36.842317, - 14.313441 - ], - [ - 36.843619, - 14.315271 - ], - [ - 36.846289, - 14.318731 - ], - [ - 36.848019, - 14.320051 - ], - [ - 36.851679, - 14.319821 - ], - [ - 36.858989, - 14.319711 - ], - [ - 36.861979, - 14.320181 - ], - [ - 36.866709, - 14.319161 - ], - [ - 36.870529, - 14.316341 - ], - [ - 36.872079, - 14.315751 - ], - [ - 36.875959, - 14.313891 - ], - [ - 36.879939, - 14.312841 - ], - [ - 36.88234, - 14.313231 - ], - [ - 36.884919, - 14.313861 - ], - [ - 36.889569, - 14.314581 - ], - [ - 36.892609, - 14.315001 - ], - [ - 36.893749, - 14.314681 - ], - [ - 36.896689, - 14.312251 - ], - [ - 36.899439, - 14.308351 - ], - [ - 36.900629, - 14.307031 - ], - [ - 36.903279, - 14.305451 - ], - [ - 36.906119, - 14.304741 - ], - [ - 36.908599, - 14.302921 - ], - [ - 36.913799, - 14.302051 - ], - [ - 36.916939, - 14.301211 - ], - [ - 36.920669, - 14.301421 - ], - [ - 36.922109, - 14.300841 - ], - [ - 36.930109, - 14.298771 - ], - [ - 36.932199, - 14.297751 - ], - [ - 36.935119, - 14.296761 - ], - [ - 36.938879, - 14.293311 - ], - [ - 36.941549, - 14.292361 - ], - [ - 36.948599, - 14.290611 - ], - [ - 36.952949, - 14.292371 - ], - [ - 36.958159, - 14.293341 - ], - [ - 36.959999, - 14.293431 - ], - [ - 36.964449, - 14.291891 - ], - [ - 36.969469, - 14.290341 - ], - [ - 36.972199, - 14.287841 - ], - [ - 36.973449, - 14.284961 - ], - [ - 36.974999, - 14.282661 - ], - [ - 36.975529, - 14.282181 - ], - [ - 36.978429, - 14.281411 - ], - [ - 36.981379, - 14.278851 - ], - [ - 36.983529, - 14.276471 - ], - [ - 36.985209, - 14.271461 - ], - [ - 36.986409, - 14.267741 - ], - [ - 36.988269, - 14.263631 - ], - [ - 36.989859, - 14.262211 - ], - [ - 36.992629, - 14.260741 - ], - [ - 36.997789, - 14.259711 - ], - [ - 37.001869, - 14.257191 - ], - [ - 37.005709, - 14.252371 - ], - [ - 37.009659, - 14.249791 - ], - [ - 37.015839, - 14.249671 - ], - [ - 37.020309, - 14.251581 - ], - [ - 37.023209, - 14.253881 - ], - [ - 37.027759, - 14.255181 - ], - [ - 37.030529, - 14.256901 - ], - [ - 37.033339, - 14.260571 - ], - [ - 37.035329, - 14.262161 - ], - [ - 37.037919, - 14.265611 - ], - [ - 37.042719, - 14.267261 - ], - [ - 37.049859, - 14.266151 - ], - [ - 37.057539, - 14.262911 - ], - [ - 37.066099, - 14.262831 - ], - [ - 37.070279, - 14.266721 - ], - [ - 37.072449, - 14.267871 - ], - [ - 37.078049, - 14.267651 - ], - [ - 37.085299, - 14.267361 - ], - [ - 37.090322, - 14.268649 - ], - [ - 37.094679, - 14.272971 - ], - [ - 37.095739, - 14.278331 - ], - [ - 37.095769, - 14.281001 - ], - [ - 37.097469, - 14.284941 - ], - [ - 37.100409, - 14.286411 - ], - [ - 37.102589, - 14.288191 - ], - [ - 37.103399, - 14.289571 - ], - [ - 37.103389, - 14.295971 - ], - [ - 37.102459, - 14.303911 - ], - [ - 37.102629, - 14.308651 - ], - [ - 37.103709, - 14.314371 - ], - [ - 37.105219, - 14.318421 - ], - [ - 37.103969, - 14.322001 - ], - [ - 37.101489, - 14.325371 - ], - [ - 37.098409, - 14.329111 - ], - [ - 37.098179, - 14.330951 - ], - [ - 37.099229, - 14.334951 - ], - [ - 37.101039, - 14.343701 - ], - [ - 37.105329, - 14.351281 - ], - [ - 37.108689, - 14.359251 - ], - [ - 37.114029, - 14.362301 - ], - [ - 37.113669, - 14.368201 - ], - [ - 37.115399, - 14.371791 - ], - [ - 37.118899, - 14.376691 - ], - [ - 37.121499, - 14.379971 - ], - [ - 37.122559, - 14.381701 - ], - [ - 37.123529, - 14.390141 - ], - [ - 37.124909, - 14.395121 - ], - [ - 37.126919, - 14.398421 - ], - [ - 37.129159, - 14.403711 - ], - [ - 37.131719, - 14.407601 - ], - [ - 37.134969, - 14.408701 - ], - [ - 37.140799, - 14.408711 - ], - [ - 37.144399, - 14.411031 - ], - [ - 37.149169, - 14.415501 - ], - [ - 37.154949, - 14.418581 - ], - [ - 37.160219, - 14.420971 - ], - [ - 37.163619, - 14.421091 - ], - [ - 37.170299, - 14.417031 - ], - [ - 37.175199, - 14.416641 - ], - [ - 37.182849, - 14.419251 - ], - [ - 37.187349, - 14.421671 - ], - [ - 37.196749, - 14.426161 - ], - [ - 37.200169, - 14.428411 - ], - [ - 37.203529, - 14.434141 - ], - [ - 37.204579, - 14.436841 - ], - [ - 37.207759, - 14.439941 - ], - [ - 37.215029, - 14.443411 - ], - [ - 37.220369, - 14.445151 - ], - [ - 37.226519, - 14.445041 - ], - [ - 37.230659, - 14.441621 - ], - [ - 37.234759, - 14.442631 - ], - [ - 37.239289, - 14.440371 - ], - [ - 37.242189, - 14.436481 - ], - [ - 37.243729, - 14.433951 - ], - [ - 37.248739, - 14.433291 - ], - [ - 37.253149, - 14.433671 - ], - [ - 37.257289, - 14.439941 - ], - [ - 37.264749, - 14.440321 - ], - [ - 37.271059, - 14.441831 - ], - [ - 37.277089, - 14.441781 - ], - [ - 37.281929, - 14.441681 - ], - [ - 37.287259, - 14.445611 - ], - [ - 37.295189, - 14.446761 - ], - [ - 37.300179, - 14.446941 - ], - [ - 37.306839, - 14.447411 - ], - [ - 37.310139, - 14.447481 - ], - [ - 37.310629, - 14.446931 - ], - [ - 37.311939, - 14.441101 - ], - [ - 37.313019, - 14.435021 - ], - [ - 37.317089, - 14.430221 - ], - [ - 37.326959, - 14.428491 - ], - [ - 37.332369, - 14.424371 - ], - [ - 37.335089, - 14.418131 - ], - [ - 37.336069, - 14.414781 - ], - [ - 37.338989, - 14.412861 - ], - [ - 37.344139, - 14.412971 - ], - [ - 37.346689, - 14.413771 - ], - [ - 37.350129, - 14.412945 - ], - [ - 37.363292, - 14.391813 - ], - [ - 37.36675, - 14.384512 - ], - [ - 37.383958, - 14.360635 - ], - [ - 37.379604, - 14.340311 - ], - [ - 37.396545, - 14.328421 - ], - [ - 37.39303, - 14.30096 - ], - [ - 37.446524, - 14.254721 - ], - [ - 37.460157, - 14.245652 - ], - [ - 37.467601, - 14.234414 - ], - [ - 37.468316, - 14.217 - ], - [ - 37.50021, - 14.185178 - ], - [ - 37.504921, - 14.185659 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf01a31a", - "_rev":"1-f09864d8de133c8b0435fa6925dd50bf", - "type":"Feature", - "properties":{ - "GISNAME":"Kafta-Shiraro", - "Species":"Elephant, Caracal, Leopard, Greater Kudu, Oribi, Waterbuck, Aardvark, Roan Antelope" - } - } - }, - { - "type":"Feature", - "geometry":{ - "type":"Polygon", - "coordinates":[ - [ - [ - 38.010713, - 13.247797 - ], - [ - 38.014497, - 13.25291 - ], - [ - 38.017909, - 13.25293 - ], - [ - 38.020312, - 13.253923 - ], - [ - 38.024128, - 13.25375 - ], - [ - 38.027748, - 13.252792 - ], - [ - 38.032155, - 13.254384 - ], - [ - 38.037176, - 13.254021 - ], - [ - 38.039149, - 13.259711 - ], - [ - 38.042162, - 13.259532 - ], - [ - 38.043553, - 13.26189 - ], - [ - 38.044552, - 13.262679 - ], - [ - 38.044543, - 13.264245 - ], - [ - 38.046942, - 13.265826 - ], - [ - 38.050748, - 13.267414 - ], - [ - 38.052141, - 13.26938 - ], - [ - 38.05474, - 13.271157 - ], - [ - 38.056932, - 13.273911 - ], - [ - 38.05832, - 13.276856 - ], - [ - 38.060726, - 13.277457 - ], - [ - 38.061715, - 13.280008 - ], - [ - 38.065932, - 13.279836 - ], - [ - 38.067518, - 13.283174 - ], - [ - 38.068907, - 13.285923 - ], - [ - 38.071114, - 13.286327 - ], - [ - 38.073306, - 13.289081 - ], - [ - 38.076329, - 13.28714 - ], - [ - 38.078344, - 13.285977 - ], - [ - 38.080948, - 13.28697 - ], - [ - 38.082148, - 13.28776 - ], - [ - 38.081336, - 13.289322 - ], - [ - 38.079725, - 13.290096 - ], - [ - 38.077112, - 13.290473 - ], - [ - 38.075296, - 13.292029 - ], - [ - 38.079104, - 13.293226 - ], - [ - 38.082108, - 13.294613 - ], - [ - 38.086722, - 13.295227 - ], - [ - 38.089327, - 13.296221 - ], - [ - 38.092136, - 13.296432 - ], - [ - 38.092528, - 13.298197 - ], - [ - 38.095525, - 13.300563 - ], - [ - 38.096511, - 13.303702 - ], - [ - 38.0979, - 13.306451 - ], - [ - 38.099095, - 13.30822 - ], - [ - 38.099888, - 13.309986 - ], - [ - 38.103107, - 13.30883 - ], - [ - 38.106731, - 13.307283 - ], - [ - 38.108126, - 13.309053 - ], - [ - 38.111337, - 13.309267 - ], - [ - 38.114341, - 13.310654 - ], - [ - 38.115936, - 13.312621 - ], - [ - 38.117327, - 13.315175 - ], - [ - 38.119344, - 13.313619 - ], - [ - 38.120562, - 13.311276 - ], - [ - 38.120374, - 13.309121 - ], - [ - 38.119382, - 13.307158 - ], - [ - 38.119791, - 13.305789 - ], - [ - 38.122002, - 13.30541 - ], - [ - 38.123416, - 13.304047 - ], - [ - 38.124424, - 13.30327 - ], - [ - 38.124251, - 13.298569 - ], - [ - 38.124462, - 13.296808 - ], - [ - 38.12666, - 13.298582 - ], - [ - 38.128867, - 13.298986 - ], - [ - 38.130471, - 13.299387 - ], - [ - 38.13207, - 13.30057 - ], - [ - 38.133862, - 13.303126 - ], - [ - 38.135445, - 13.307246 - ], - [ - 38.13806, - 13.306477 - ], - [ - 38.141874, - 13.306694 - ], - [ - 38.143888, - 13.30553 - ], - [ - 38.145302, - 13.304167 - ], - [ - 38.148293, - 13.307708 - ], - [ - 38.149508, - 13.305953 - ], - [ - 38.150713, - 13.305959 - ], - [ - 38.152928, - 13.304796 - ], - [ - 38.15354, - 13.303233 - ], - [ - 38.152347, - 13.301073 - ], - [ - 38.152557, - 13.299508 - ], - [ - 38.152769, - 13.297551 - ], - [ - 38.153778, - 13.296773 - ], - [ - 38.153988, - 13.295012 - ], - [ - 38.153996, - 13.293641 - ], - [ - 38.156206, - 13.293457 - ], - [ - 38.158204, - 13.29523 - ], - [ - 38.160195, - 13.298178 - ], - [ - 38.162199, - 13.298777 - ], - [ - 38.163614, - 13.297218 - ], - [ - 38.165632, - 13.295466 - ], - [ - 38.165006, - 13.29447 - ], - [ - 38.16336, - 13.293309 - ], - [ - 38.163017, - 13.29135 - ], - [ - 38.162553, - 13.289851 - ], - [ - 38.161728, - 13.289501 - ], - [ - 38.161502, - 13.287773 - ], - [ - 38.160796, - 13.287308 - ], - [ - 38.159145, - 13.286954 - ], - [ - 38.15797, - 13.286027 - ], - [ - 38.158916, - 13.285686 - ], - [ - 38.159747, - 13.285 - ], - [ - 38.160345, - 13.283622 - ], - [ - 38.160353, - 13.28224 - ], - [ - 38.161184, - 13.281438 - ], - [ - 38.162128, - 13.281444 - ], - [ - 38.162475, - 13.282827 - ], - [ - 38.164711, - 13.283991 - ], - [ - 38.1666, - 13.284116 - ], - [ - 38.168726, - 13.283897 - ], - [ - 38.170728, - 13.284829 - ], - [ - 38.171791, - 13.284835 - ], - [ - 38.171211, - 13.282989 - ], - [ - 38.1691, - 13.280445 - ], - [ - 38.16805, - 13.278252 - ], - [ - 38.167114, - 13.276635 - ], - [ - 38.165942, - 13.275247 - ], - [ - 38.166068, - 13.273751 - ], - [ - 38.16631, - 13.272716 - ], - [ - 38.168195, - 13.273417 - ], - [ - 38.17008, - 13.274233 - ], - [ - 38.172314, - 13.275857 - ], - [ - 38.172908, - 13.275169 - ], - [ - 38.173403, - 13.271142 - ], - [ - 38.17412, - 13.269649 - ], - [ - 38.175782, - 13.267931 - ], - [ - 38.176131, - 13.268854 - ], - [ - 38.17671, - 13.270814 - ], - [ - 38.178124, - 13.271283 - ], - [ - 38.182629, - 13.268083 - ], - [ - 38.183662, - 13.273385 - ], - [ - 38.187684, - 13.271909 - ], - [ - 38.187928, - 13.270529 - ], - [ - 38.188638, - 13.270187 - ], - [ - 38.189118, - 13.268808 - ], - [ - 38.190183, - 13.268353 - ], - [ - 38.191968, - 13.26583 - ], - [ - 38.19328, - 13.263534 - ], - [ - 38.194818, - 13.262967 - ], - [ - 38.195996, - 13.263434 - ], - [ - 38.197298, - 13.26275 - ], - [ - 38.196008, - 13.261246 - ], - [ - 38.195306, - 13.260091 - ], - [ - 38.191178, - 13.259378 - ], - [ - 38.188942, - 13.2581 - ], - [ - 38.1853, - 13.254857 - ], - [ - 38.183772, - 13.253812 - ], - [ - 38.181065, - 13.252301 - ], - [ - 38.179305, - 13.250334 - ], - [ - 38.177539, - 13.249519 - ], - [ - 38.175895, - 13.248013 - ], - [ - 38.174127, - 13.247428 - ], - [ - 38.171529, - 13.247529 - ], - [ - 38.169414, - 13.245791 - ], - [ - 38.168947, - 13.244982 - ], - [ - 38.16623, - 13.245198 - ], - [ - 38.165175, - 13.243926 - ], - [ - 38.163412, - 13.24265 - ], - [ - 38.160341, - 13.242863 - ], - [ - 38.157638, - 13.240661 - ], - [ - 38.153743, - 13.24064 - ], - [ - 38.152087, - 13.241207 - ], - [ - 38.149377, - 13.240386 - ], - [ - 38.146543, - 13.240486 - ], - [ - 38.144655, - 13.24036 - ], - [ - 38.142058, - 13.240231 - ], - [ - 38.13947, - 13.23872 - ], - [ - 38.13451, - 13.239038 - ], - [ - 38.129546, - 13.240047 - ], - [ - 38.126355, - 13.240605 - ], - [ - 38.123877, - 13.240592 - ], - [ - 38.121284, - 13.239886 - ], - [ - 38.118334, - 13.239525 - ], - [ - 38.11492, - 13.237894 - ], - [ - 38.112213, - 13.236497 - ], - [ - 38.110215, - 13.235105 - ], - [ - 38.107148, - 13.234742 - ], - [ - 38.105741, - 13.233007 - ], - [ - 38.104564, - 13.232425 - ], - [ - 38.102796, - 13.231955 - ], - [ - 38.101506, - 13.230566 - ], - [ - 38.099622, - 13.229749 - ], - [ - 38.097501, - 13.229047 - ], - [ - 38.096087, - 13.228693 - ], - [ - 38.093721, - 13.229486 - ], - [ - 38.092411, - 13.231436 - ], - [ - 38.090273, - 13.233611 - ], - [ - 38.08107, - 13.232869 - ], - [ - 38.075644, - 13.232262 - ], - [ - 38.073524, - 13.231444 - ], - [ - 38.069748, - 13.231193 - ], - [ - 38.068573, - 13.230265 - ], - [ - 38.067039, - 13.230141 - ], - [ - 38.065272, - 13.22944 - ], - [ - 38.062797, - 13.22885 - ], - [ - 38.060212, - 13.226763 - ], - [ - 38.057393, - 13.22456 - ], - [ - 38.055271, - 13.224087 - ], - [ - 38.054217, - 13.222584 - ], - [ - 38.053161, - 13.221657 - ], - [ - 38.051157, - 13.22107 - ], - [ - 38.050812, - 13.219686 - ], - [ - 38.051414, - 13.217733 - ], - [ - 38.05296, - 13.215784 - ], - [ - 38.053444, - 13.213715 - ], - [ - 38.052508, - 13.212443 - ], - [ - 38.051455, - 13.210825 - ], - [ - 38.048052, - 13.207467 - ], - [ - 38.045941, - 13.205267 - ], - [ - 38.044541, - 13.202496 - ], - [ - 38.042549, - 13.200067 - ], - [ - 38.039606, - 13.198898 - ], - [ - 38.037486, - 13.19808 - ], - [ - 38.032414, - 13.197475 - ], - [ - 38.028286, - 13.196991 - ], - [ - 38.025104, - 13.196166 - ], - [ - 38.020386, - 13.195563 - ], - [ - 38.0172, - 13.19543 - ], - [ - 38.015315, - 13.194958 - ], - [ - 38.014015, - 13.195181 - ], - [ - 38.012701, - 13.197706 - ], - [ - 38.012331, - 13.200352 - ], - [ - 38.012317, - 13.202539 - ], - [ - 38.010889, - 13.204488 - ], - [ - 38.009583, - 13.205632 - ], - [ - 38.008047, - 13.205968 - ], - [ - 38.006864, - 13.206306 - ], - [ - 38.004975, - 13.20641 - ], - [ - 38.004254, - 13.208479 - ], - [ - 38.003773, - 13.209857 - ], - [ - 38.002352, - 13.210655 - ], - [ - 38.000587, - 13.209723 - ], - [ - 37.998473, - 13.207984 - ], - [ - 37.996012, - 13.205206 - ], - [ - 37.994961, - 13.203358 - ], - [ - 37.993908, - 13.20174 - ], - [ - 37.992023, - 13.201153 - ], - [ - 37.987985, - 13.205159 - ], - [ - 37.984541, - 13.208592 - ], - [ - 37.981927, - 13.21134 - ], - [ - 37.980262, - 13.213287 - ], - [ - 37.982351, - 13.219056 - ], - [ - 37.9855, - 13.225062 - ], - [ - 37.989469, - 13.232224 - ], - [ - 37.993209, - 13.238348 - ], - [ - 37.995777, - 13.242968 - ], - [ - 38.005543, - 13.248207 - ], - [ - 38.010713, - 13.247797 - ] - ] - ] - }, - "properties":{ - "_id":"7566d278fe9e2b1deac33ed0bf01cad8", - "_rev":"1-671e0fa8f2a30e0078c9dfc4efd375d3", - "type":"Feature", - "properties":{ - "GISNAME":"Simien Mountains" - } - } - } - ] -} \ No newline at end of file diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/0/0/0.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/0/0/0.jpg deleted file mode 100644 index 8451723..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/0/0/0.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/1/0/0.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/1/0/0.jpg deleted file mode 100644 index dbffef2..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/1/0/0.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/1/0/1.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/1/0/1.jpg deleted file mode 100644 index 393d951..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/1/0/1.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/1/1/0.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/1/1/0.jpg deleted file mode 100644 index ef3c3e1..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/1/1/0.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/1/1/1.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/1/1/1.jpg deleted file mode 100644 index 5360a78..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/1/1/1.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/0/0.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/0/0.jpg deleted file mode 100644 index 03a6464..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/0/0.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/0/1.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/0/1.jpg deleted file mode 100644 index 52cc5d0..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/0/1.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/0/2.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/0/2.jpg deleted file mode 100644 index b3690a5..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/0/2.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/0/3.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/0/3.jpg deleted file mode 100644 index 6d1b224..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/0/3.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/1/0.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/1/0.jpg deleted file mode 100644 index b066b11..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/1/0.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/1/1.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/1/1.jpg deleted file mode 100644 index 95e3d8c..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/1/1.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/1/2.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/1/2.jpg deleted file mode 100644 index 2ae815d..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/1/2.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/1/3.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/1/3.jpg deleted file mode 100644 index 7eea998..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/1/3.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/2/0.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/2/0.jpg deleted file mode 100644 index 9741377..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/2/0.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/2/1.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/2/1.jpg deleted file mode 100644 index d3a120d..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/2/1.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/2/2.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/2/2.jpg deleted file mode 100644 index 904d6fb..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/2/2.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/2/3.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/2/3.jpg deleted file mode 100644 index bdcf8ec..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/2/3.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/3/0.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/3/0.jpg deleted file mode 100644 index 5cc19d9..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/3/0.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/3/1.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/3/1.jpg deleted file mode 100644 index 3c4ca3c..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/3/1.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/3/2.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/3/2.jpg deleted file mode 100644 index 74f0f87..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/3/2.jpg and /dev/null differ diff --git a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/3/3.jpg b/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/3/3.jpg deleted file mode 100644 index f2dfc96..0000000 Binary files a/demo/data/wmts/1.0.0/NE1_HR_LC_SR_W_DR/default/10m/2/3/3.jpg and /dev/null differ diff --git a/demo/google.html b/demo/google.html deleted file mode 100644 index 9513dd6..0000000 --- a/demo/google.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - MapQuery google maps example - - - - - - - - - - - -
- - diff --git a/demo/reservates_json.html b/demo/reservates_json.html deleted file mode 100644 index 964ebef..0000000 --- a/demo/reservates_json.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - MapQuery Geocouch example - - - - - - - - - - - - -
-
- - \ No newline at end of file diff --git a/demo/style/altstyle.css b/demo/style/altstyle.css deleted file mode 100644 index e0dd3b9..0000000 --- a/demo/style/altstyle.css +++ /dev/null @@ -1,153 +0,0 @@ -.map { - height:512px; - width:512px; - border:solid 1px black; - display: inline-block; -} -.olControlAttribution { - bottom:0.5em !important; -} -.zoom { - position: absolute; - z-index: 100000; - margin: 5px; - cursor: pointer; -} -.zoom .ui-icon { - margin: 0 4px; -} -.zoom .ui-corner-all{ - margin: 2px; - padding: 4px 0; -} -#layercontrol{ - float:right; - width: 320px; - border:solid 1px black; - padding: 0px; - background: #ececec; -} -.mq-widget { - font-size:0.6em; -} -#layercontrol ul{ - padding: 0px; - margin: 5px; -} -.mq-layercontrol { - margin: 2px; - padding:2px; -} -.mq-layercontrol .ui-icon { - margin-bottom:-2px; - display:inline-block; -} -.mq-layercontrol-label { - width:160px; - display:inline-block; -} -.mq-layercontrol-visibility { - text-align: right; -} -.mq-layercontrol-delete { - -} -.mq-mouseposition { - display: block; - width: 300px; -} -.mq-mouseposition-coordinate { - display: inline-block; - margin:2px; -} - -.mq-overviewmap-dialog .ui-dialog-content{ - padding: 0.4em; - -} -.mq-overviewmap-button { - margin: 2px; - padding: 4px ; - cursor: pointer; - margin: 5px; - - z-index: 999; - bottom: 0; - float: right; - position: absolute; - right: 0; -} - -#layermanager{ - width: 300px; -} - -#featureinfo { - display: inline-block; - min-height: 100px; - height: auto; - position: relative; - vertical-align: top; - width: 256px; -} - -#featureinfo h1 { - margin-left: 0.5em; -} - -#featureinfo p { - font-size: 1.5em; - margin-left: 1em; -} - -#popup { - position:absolute; -} -#layermanager { - display: inline-block; - height: 256px; - position: relative; - vertical-align: top; - width: 256px; -} -.mq-layermanager-element { - display: block; - padding: 0px; - margin: 0px 0px 3px 0px; -} -.mq-layermanager-label { - float: left; - margin: 0.5em 16px 0.5em 0.5em; -} -.ui-dialog-titlebar-close{ - height: 18px; - padding: 1px; - float:right; - width: 19px; -} -.mq-layermanager-element-header { - cursor: move; -} - -.mq-layermanager-element-visibility{ - display: block; -} -.mq-layermanager-element-vischeckbox{ - float: left; - width: 19px; - height: 19px; - margin: 7px 0px 0px 6px; -} -.mq-layermanager-element-slider-container { - display: block; - margin: 4px 8px 4px 8px; - padding: 3px; -} - -.mq-zoomslider { - position: absolute; - float: left; - margin: 10px; - z-index: 10000; - -} diff --git a/demo/style/style.css b/demo/style/style.css deleted file mode 100644 index b256272..0000000 --- a/demo/style/style.css +++ /dev/null @@ -1,152 +0,0 @@ -.map { - height:512px; - width:512px; - border:solid 1px black; - display: inline-block; -} -.olControlAttribution { - bottom:0.5em !important; -} -.zoom { - position: absolute; - z-index: 100000; - margin: 5px; - cursor: pointer; -} -.zoom .ui-icon { - margin: 0 4px; -} -.zoom .ui-corner-all{ - margin: 2px; - padding: 4px 0; -} -#layercontrol{ - float:right; - width: 320px; - border:solid 1px black; - padding: 0px; - background: #ececec; -} -.mq-widget { - font-size:0.6em; -} -#layercontrol ul{ - padding: 0px; - margin: 5px; -} -.mq-layercontrol { - margin: 2px; - padding:2px; -} -.mq-layercontrol .ui-icon { - margin-bottom:-2px; - display:inline-block; -} -.mq-layercontrol-label { - width:160px; - display:inline-block; -} -.mq-layercontrol-visibility { - text-align: right; -} -.mq-layercontrol-delete { - -} -.mq-mouseposition { - display: block; - width: 300px; -} -.mq-mouseposition-coordinate { - display: inline-block; - margin:2px; -} - -.mq-overviewmap-dialog .ui-dialog-content{ - padding: 0.4em; - -} -.mq-overviewmap-button { - margin: 2px; - padding: 4px ; - cursor: pointer; - margin: 5px; - - z-index: 999; - bottom: 0; - float: right; - position: absolute; - right: 0; -} - -#layermanager{ - width: 300px; -} - -#featureinfo { - display: inline-block; - min-height: 100px; - height: auto; - position: relative; - vertical-align: top; - width: 256px; -} - -#featureinfo h1 { - margin-left: 0.5em; -} - -#featureinfo p { - font-size: 1.5em; - margin-left: 1em; -} - -#popup { - position:absolute; -} -#layermanager { - display: inline-block; - height: 256px; - position: relative; - vertical-align: top; - width: 256px; -} -.mq-layermanager-element { - display: block; - padding: 2px; - margin: 2px; -} -.mq-layermanager-label { - float: left; - margin: 0.5em 16px 0.5em 0.5em; -} -.ui-dialog-titlebar-close{ - height: 18px; - padding: 1px; - float:right; - width: 19px; -} -.mq-layermanager-element-header { - cursor: move; -} - -.mq-layermanager-element-visibility{ - display: block; -} -.mq-layermanager-element-vischeckbox{ - float: left; - width: 19px; - height: 19px; -} -.mq-layermanager-element-slider-container { - display: block; - margin: 0px 5px 0px 30px; - padding: 10px; -} - -.mq-zoomslider { - position: absolute; - float: left; - margin: 10px; - z-index: 10000; - -} diff --git a/demo/tms.html b/demo/tms.html deleted file mode 100644 index 9257a2c..0000000 --- a/demo/tms.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - MapQuery TMS example - - - - - - - - -
- - \ No newline at end of file diff --git a/demo/widgets/mqFeatureInfo.html b/demo/widgets/mqFeatureInfo.html deleted file mode 100644 index 72ec62f..0000000 --- a/demo/widgets/mqFeatureInfo.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - MapQuery feature info example - - - - - - - - - - - -
-
- - diff --git a/demo/widgets/mqLayerManager.html b/demo/widgets/mqLayerManager.html deleted file mode 100644 index 4d73944..0000000 --- a/demo/widgets/mqLayerManager.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - MapQuery layer manager example - - - - - - - - - - - - -
-
-
    -
  • Add OpenStreetMap
  • -
  • Add Population density
  • -
  • Add Bing aerial
  • -
- - diff --git a/demo/widgets/mqMousePosition.html b/demo/widgets/mqMousePosition.html deleted file mode 100644 index 25e6bd0..0000000 --- a/demo/widgets/mqMousePosition.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - MapQuery mouse position example - - - - - - - - - - - -
-
- - \ No newline at end of file diff --git a/demo/widgets/mqOverviewMap.html b/demo/widgets/mqOverviewMap.html deleted file mode 100644 index 03040ae..0000000 --- a/demo/widgets/mqOverviewMap.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - MapQuery overview map example - - - - - - - - - - - -
-
- - - \ No newline at end of file diff --git a/demo/widgets/mqPopup.html b/demo/widgets/mqPopup.html deleted file mode 100644 index 2458d3c..0000000 --- a/demo/widgets/mqPopup.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - MapQuery popup example - - - - - - - - - - - - -
- - - diff --git a/demo/widgets/mqTemplateOverride.html b/demo/widgets/mqTemplateOverride.html deleted file mode 100644 index a35a11e..0000000 --- a/demo/widgets/mqTemplateOverride.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - MapQuery template override example - - - - - - - - - - - - -
-
- - diff --git a/demo/widgets/mqZoomButtons.html b/demo/widgets/mqZoomButtons.html deleted file mode 100644 index 9080a7a..0000000 --- a/demo/widgets/mqZoomButtons.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - MapQuery zoom buttons example - - - - - - - - - - - -
-
-
- - \ No newline at end of file diff --git a/demo/widgets/mqZoomSlider.html b/demo/widgets/mqZoomSlider.html deleted file mode 100644 index a394cdb..0000000 --- a/demo/widgets/mqZoomSlider.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - MapQuery zoom slider example - - - - - - - - - - - -
-
-
- - diff --git a/demo/wms.html b/demo/wms.html deleted file mode 100644 index f9eb10f..0000000 --- a/demo/wms.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - MapQuery WMS example - - - - - - - - -
- - \ No newline at end of file diff --git a/demo/wms28992.html b/demo/wms28992.html deleted file mode 100644 index ece1f22..0000000 --- a/demo/wms28992.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - MapQuery WMS other projection example - - - - - - - - - -
- - diff --git a/demo/wms900913.html b/demo/wms900913.html deleted file mode 100644 index db29640..0000000 --- a/demo/wms900913.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - MapQuery WMS Spherical mercator example - - - - - - - -
- - \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..1955a14 --- /dev/null +++ b/index.html @@ -0,0 +1,83 @@ + + + + + + mapquery/mapquery @ GitHub + + + + + + Fork me on GitHub + +
+ +
+ + + + +
+ +

mapquery + by mapquery

+ +
+ Combining the power of OpenLayers and jQuery +
+ +

License

+

MIT +

+

Authors

+

Volker Mische (volker.mische@gmail.com) +
+

+

Contact

+

(volker.mische@gmail.com) +

+ + +

Download

+

+ You can download this project in either + zip or + tar formats. +

+

You can also clone the project with Git + by running: +

$ git clone git://github.com/mapquery/mapquery
+

+ + + +
+ + + + diff --git a/lib/getdeps.sh b/lib/getdeps.sh deleted file mode 100755 index 1ad0ab5..0000000 --- a/lib/getdeps.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -mkdir -p download tmp - -# I need the _super() function (in jquery.ui.widget.js) from 1.9 -curl --location -o "download/jquery-ui-1.9m6.tar.gz" "https://github.com/jquery/jquery-ui/tarball/1.9m6" -tar zxvf download/jquery-ui-1.9m6.tar.gz -C tmp -# minification just takes too long => don't do it -ant -file tmp/jquery-jquery-ui-ae119ce/build/build.xml copy concatenate -mv tmp/jquery-jquery-ui-ae119ce/build/dist/jquery-ui-1.9m6/ jquery - -# Get OpenLayers -curl -o "download/OpenLayers-2.12.tar.gz" "http://openlayers.org/download/OpenLayers-2.12.tar.gz" -mkdir openlayers -tar zxvf download/OpenLayers-2.12.tar.gz --strip 1 -C openlayers - -# Get jQuery-tmpl -curl -o "download/jquery.tmpl.js" "http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.js" -mv download/jquery.tmpl.js jquery/ - -# Cleanup -rm -Rf download -rm -Rf tmp diff --git a/lib/openlayers.cfg b/lib/openlayers.cfg deleted file mode 100644 index a453860..0000000 --- a/lib/openlayers.cfg +++ /dev/null @@ -1,45 +0,0 @@ -[first] - -[last] - -[include] -OpenLayers/Map.js -OpenLayers/Kinetic.js -OpenLayers/Projection.js -OpenLayers/Layer/SphericalMercator.js -OpenLayers/Layer/XYZ.js -OpenLayers/Layer/Bing.js -OpenLayers/Layer/WMS.js -OpenLayers/Layer/Vector.js -OpenLayers/Layer/Google.js -OpenLayers/Layer/Google/v3.js -OpenLayers/Layer/WMTS.js -OpenLayers/Control/ArgParser.js -OpenLayers/Control/Navigation.js -OpenLayers/Control/Geolocate.js -OpenLayers/Control/Attribution.js -OpenLayers/Control/SelectFeature.js -OpenLayers/Control/DrawFeature.js -OpenLayers/Control/ModifyFeature.js -OpenLayers/Control/KeyboardDefaults.js -OpenLayers/Control/OverviewMap.js -OpenLayers/Handler/Point.js -OpenLayers/Handler/Path.js -OpenLayers/Handler/Polygon.js -OpenLayers/Layer/Vector.js -OpenLayers/Renderer/SVG.js -OpenLayers/Renderer/Canvas.js -OpenLayers/Format/GeoJSON.js -OpenLayers/Protocol/HTTP.js -OpenLayers/Protocol/Script.js -OpenLayers/Strategy/BBOX.js -OpenLayers/Strategy/Cluster.js -OpenLayers/Strategy/Filter.js -OpenLayers/Strategy/Fixed.js -OpenLayers/Strategy/Paging.js -OpenLayers/Strategy/Refresh.js -OpenLayers/Strategy/Save.js - -[exclude] - - diff --git a/src/jquery.mapquery.core.js b/src/jquery.mapquery.core.js deleted file mode 100644 index 924088c..0000000 --- a/src/jquery.mapquery.core.js +++ /dev/null @@ -1,1480 +0,0 @@ -/* Copyright (c) 2011 by MapQuery Contributors (see AUTHORS for - * full list of contributors). Published under the MIT license. - * See https://github.com/mapquery/mapquery/blob/master/LICENSE for the - * full text of the license. */ -(function ($) { -/** -# jquery.mapquery.core.js -The main MapQuery file. It contains the MapQuery constructor, the MapQuery.Map -constructor and the MapQuery.Layer constructor. - - -### *$('selector')*.`mapQuery([options])` -_version added 0.1_ -####**Description**: initialise MapQuery and associate it with -the matched element - -**options** an object of key-value pairs with options for the map. Possible -pairs are: - - * **layers** (array of MapQuery.Layer *or* MapQuery.Layer): Either an array - or a single layer that should be added to the map - * **center** ({position: [x,y], zoom: z(int), box: [llx,lly,urx,ury]}): - Initially go to a certain location. At least one layer (in the `layers` - option) needs to be specified. - -> Returns: $('selector') (jQuery object) - - -We can initialise MapQuery without any options, or for instance pass in a layer -object. The mapQuery function returns a jQuery object, to access the mapQuery object retrieve -the 'mapQuery' data object. - - var map = $('#map').mapQuery(); //create an empty map - var map = $('#map').mapQuery({layers:[{type:'osm'}]); //create a map with osm - - var mq = map.data('mapQuery'); //get the MapQuery object - */ -$.MapQuery = $.MapQuery || {}; - -/** - ---- - -#MapQuery.Map - -The MapQuery.Map object. It is automatically constructed from the options -given in the `mapQuery([options])` constructor. The Map object is refered -to as _map_ in the documentation. - */ -$.MapQuery.Map = function(element, options) { - var self = this; - //If there are a maxExtent and a projection other than Spherical Mercator - //automagically set maxResolution if it is not set - //TODO smo 20110614: put maxExtent and maxResolution setting in the - //proper option building routine - if(options){ - if(!options.maxResolution&&options.maxExtent&&options.projection){ - options.maxResolution = (options.maxExtent[2]-options.maxExtent[0])/256; - }} - this.options = $.extend({}, new $.fn.mapQuery.defaults.map(), options); - - this.element = element; - // TODO vmx 20110609: do proper options building - // TODO SMO 20110616: make sure that all projection strings are uppercase - // smo 20110620: you need the exact map options in the overviewmap widget - // as such we need to preserve them - this.olMapOptions = $.extend({}, this.options); - delete this.olMapOptions.layers; - delete this.olMapOptions.maxExtent; - delete this.olMapOptions.zoomToMaxExtent; - delete this.olMapOptions.center; - - //TODO SMO20110630 the maxExtent is in mapprojection, decide whether or - //not we need to change it to displayProjection - this.maxExtent = this.options.maxExtent; - this.olMapOptions.maxExtent = new OpenLayers.Bounds( - this.maxExtent[0],this.maxExtent[1],this.maxExtent[2],this.maxExtent[3]); - - - this.projection = this.options.projection; - this.displayProjection = this.options.displayProjection; - - OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3; - OpenLayers.Util.onImageLoadErrorColor = "transparent"; - - // create the OpenLayers Map - this.olMap = new OpenLayers.Map(this.element[0], this.olMapOptions); - - //OpenLayers doesn't want to return a maxExtent when there is no baselayer - //set (eg on an empty map, so we create a fake baselayer - this.olMap.addLayer(new OpenLayers.Layer('fake', {baseLayer: true})); - - // Keep IDs of vector layer for select feature control - this.vectorLayers = []; - this.selectFeatureControl = null; - // Counts up to create unique IDs - this.idCounter = 0; - - element.data('mapQuery', this); - this.layersList = {}; - - // To bind and trigger jQuery events - this.events = $({}); - - this.handlers = { - // Triggers the jQuery events, after the OpenLayers events - // happened without any further processing - simple: function(data) { - this.trigger(data.type); - } - }; - - // MapQuery doesn't bind all OpenLayers events automatically, - // but just the ones that make sense. - // Events that are left out intensionally are: - // - changebaselayer: MapQuery doesn't have the concept of base layers - // - mouseover, mouseout, mousemove: Handle those with jQuery on the - // DOM level - // Some events can be triggered by MapQuery without listening to the - // OpenLayers events. This only works for events that are triggered - // by functionality that MapQuery implements in some custom way, e.g. - // (pre)addlayer, (pre)removelayer, changelayer. - // TODO vmx 20120309: Proper docs for the events, here's some quickly - // written info: - // - generally spoken, the map events follow the OpeLayer events - // - preaddlayer, movestart, move, moveend, zoomend: no additional - // argument - // - addlayer, preremovelayer, removelayer: layer as additional argument - // - changelayer: layer and the property that changed as additional - // argument. Possible values for the property are: position (in - // the layer stack), opacity, visibility - // Currently this event is always fired, even if the property - // was only meant to be changed, but wasn't exctually changed. - // I.e. that the event is fired even if you call - // `layer.visible(true)` although the layer is already visible. - // I'm (vmx) not sure if we want to change that :) - this.olMap.events.on({ - scope: this, - movestart: this.handlers.simple, - move: this.handlers.simple, - moveend: this.handlers.simple, - zoomend: this.handlers.simple - }); - - // Add layers to the map - if (this.options.layers!==undefined) { - this.layers(this.options.layers); - // You can only go to some location if there were layers added - if (this.options.center!==undefined) { - this.center(this.options.center); - } - } - - // zoom to the maxExtent of the map if no precise location was specified - if (this.options.zoomToMaxExtent && this.options.center===undefined) { - this.olMap.zoomToMaxExtent(); - } -}; - -$.MapQuery.Map.prototype = { - /** -###*map*.`layers([options])` -_version added 0.1_ -####**Description**: get/set the layers of the map - -**options** an object of key-value pairs with options to create one or -more layers - ->Returns: [layer] (array of MapQuery.Layer) _or_ false - - -The `.layers()` method allows us to attach layers to a mapQuery object. It takes -an options object with layer options. To add multiple layers, create an array of -layer options objects. If an options object is given, it will return the -resulting layer(s). We can also use it to retrieve all layers currently attached -to the map. - -When adding layers, those are returned. If the creation is cancled by returning -`false` in the `preaddlayer` event, this function returns `false` to -intentionally break the chain instead of hiding errors subtly). - - - var osm = map.layers({type:'osm'}); //add an osm layer to the map - var layers = map.layers(); //get all layers of the map - - */ - layers: function(options) { - //var o = $.extend({}, options); - var self = this; - switch(arguments.length) { - case 0: - return this._allLayers(); - case 1: - if (!$.isArray(options)) { - return this._addLayer(options); - } - else { - return $.map(options, function(layer) { - return self._addLayer(layer); - }).reverse(); - } - break; - default: - throw('wrong argument number'); - } - }, - // Returns all layers as an array, sorted by there order in the map. First - // element in the array is the topmost layer - _allLayers: function() { - var layers = []; - $.each(this.layersList, function(id, layer) { - var item = [layer.position(), layer]; - layers.push(item); - }); - var sorted = layers.sort( function compare(a, b) { - return a[0] - b[0]; - }); - var result = $.map(sorted, function(item) { - return item[1]; - }); - return result.reverse(); - }, - _addLayer: function(options) { - var id = this._createId(); - var layer = new $.MapQuery.Layer(this, id, options); - // NOTE vmx 20120305: Not sure if this is a good idea, or if it would - // be better to include `options` with the preaddlayer event - if (this._triggerReturn('preaddlayer', [layer])===false) { - return false; - } - this.olMap.addLayer(layer.olLayer); - - this.layersList[id] = layer; - if (layer.isVector) { - this.vectorLayers.push(id); - } - this._updateSelectFeatureControl(this.vectorLayers); - - layer.trigger('addlayer'); - return layer; - }, - // Creates a new unique ID for a layer - _createId: function() { - return 'mapquery_' + this.idCounter++; - }, - _removeLayer: function(id) { - var layer = this.layersList[id]; - if (this._triggerReturn('preremovelayer', [layer])===false) { - return false; - } - - // remove id from vectorlayer if it is there list - this.vectorLayers = $.grep(this.vectorLayers, function(elem) { - return elem != id; - }); - this._updateSelectFeatureControl(this.vectorLayers); - this.olMap.removeLayer(layer.olLayer); - - // XXX vmx: shouldn't the layer be destroyed() properly? - delete this.layersList[id]; - - layer.trigger('removelayer'); - return this; - }, -/** - ###*map*.`center([options])` -_version added 0.1_ -####**Description**: get/set the extent, zoom and position of the map - - * **position** the position as [x,y] in displayProjection (default EPSG:4326) -to center the map at - * **zoom** the zoomlevel as integer to zoom the map to - * **box** an array with the lower left x, lower left y, upper right x, -upper right y to zoom the map to, -this will take precedent when conflicting with any of the above values - * **projection** the projection the coordinates are in, default is -the displayProjection - ->Returns: {position: [x,y], zoom: z(int), box: [llx,lly,urx,ury]} - - -The `.center()` method allows us to move to map to a specific zoom level, -specific position or a specific extent. We can specify the projection of the -coordinates to override the displayProjection. For instance you want to show -the coordinates in 4326, but you have a dataset in EPSG:28992 -(dutch projection). We can also retrieve the current zoomlevel, position and -extent from the map. The coordinates are returned in displayProjection. - - - var center = map.center(); //get the current zoom, position and extent - map.center({zoom:4}); //zoom to zoomlevel 4 - map.center({position:[5,52]}); //pan to point 5,52 - map.center(box:[-180,-90,180,90]); //zoom to the box -180,-900,180,90 - //pan to point 125000,485000 in dutch projection - map.center({position:[125000,485000],projection:'EPSG:28992'}); - */ - center: function (options) { - var position; - var mapProjection = this.projection; - // Determine source projection - var sourceProjection = null; - var zoom; - var box; - if(options && options.projection) { - sourceProjection = options.projection; - } else { - var displayProjection = this.displayProjection; - if(!displayProjection) { - // source == target - sourceProjection = 'EPSG:4326'; - } else { - sourceProjection = displayProjection; - } - } - - // Get the current position - if (arguments.length===0) { - position = this.olMap.getCenter(); - zoom = this.olMap.getZoom(); - box = this.olMap.getExtent(); - - if (mapProjection != sourceProjection) { - position.transform(mapProjection, sourceProjection); - } - box.transform(mapProjection,sourceProjection); - box = box!==null ? box.toArray() : []; - return { - position: [position.lon, position.lat], - zoom: this.olMap.getZoom(), - box: box - }; - } - - // Zoom to the extent of the box - if (options.box!==undefined) { - box = new OpenLayers.Bounds( - options.box[0], options.box[1],options.box[2], options.box[3]); - if (mapProjection != sourceProjection) { - box.transform(sourceProjection,mapProjection); - } - this.olMap.zoomToExtent(box); - - } - // Only zoom is given - else if (options.position===undefined) { - this.olMap.zoomTo(options.zoom); - } - // Position is given, zoom maybe as well - else { - position = new OpenLayers.LonLat(options.position[0], - options.position[1]); - if (mapProjection != sourceProjection) { - position.transform(sourceProjection, mapProjection); - } - // options.zoom might be undefined, so we are good to - // pass it on - this.olMap.setCenter(position, options.zoom); - } - }, - _updateSelectFeatureControl: function(layerIds) { - var vectorLayers = []; - var layersList = this.layersList; - if (this.selectFeatureControl!==null) { - this.selectFeatureControl.deactivate(); - this.selectFeatureControl.destroy(); - } - $.each(layerIds, function() { - vectorLayers.push(layersList[this].olLayer); - }); - this.selectFeatureControl = new OpenLayers.Control.SelectFeature( - vectorLayers); - this.olMap.addControl(this.selectFeatureControl); - this.selectFeatureControl.activate(); - }, - // This function got a bit too clever. The reason is, that jQuery's - // bind() is overloaded with so many possible combinations of arguments. - // And, of course, MapQuery wants to support them all - // The essence of the function is to wrap the original callback into - // the correct scope - bind: function(types, data, fn) { - var self = this; - - // A map of event/handle pairs, wrap each of them - if(arguments.length===1) { - var wrapped = {}; - $.each(types, function(type, fn) { - wrapped[type] = function() { - return fn.apply(self, arguments); - }; - }); - this.events.bind.apply(this.events, [wrapped]); - } - else { - var args = [types]; - // Only callback given, but no data (types, fn), hence - // `data` is the function - if(arguments.length===2) { - fn = data; - } - else { - if (!$.isFunction(fn)) { - throw('bind: you might have a typo in the function name'); - } - // Callback and data given (types, data, fn), hence include - // the data in the argument list - args.push(data); - } - - args.push(function() { - return fn.apply(self, arguments); - }); - - this.events.bind.apply(this.events, args); - } - - //this.events.bind.call(this.events, types, function() { - // data.apply(self, arguments); - //}); - //this.events.bind.call(this.events, types, function() { - // data.apply(self, arguments); - //}); - - //this.events.bind.apply(this.events, arguments); - //this.events.bind.call(this.events, types, $.proxy(data, self)); - //this.events.bind.apply(this.events, arguments);//.bind(this); - //this.events.bind.apply(this.events, $.proxy(arguments));//.bind(this); - //this.events.bind.apply(this.events, $.proxy(arguments));//.bind(this); - //this.events.bind(types, data, fn);//.bind(this); - //this.events.bind.call(this.events, types, data, fn);//.bind(this); - return this; - }, -/** -###*map*.`trigger(name [, parameters])` -_version added 0.2_ -####**Description**: triggers an event on the map - - * **name** the name of the event - * **parameters** additional parameters that will be passed on with the event - ->Returns: map (MapQuery.Map) - -To subscribe to the triggered events, you need to bind to the mapuuu. - - map.bind('myEvent', function(evt) { - console.log('the values are: ' + evt.data[0] + ' and ' + evt.data[1]) - }); - map.trigger('myEvent', 'some', 'values'); -*/ - trigger: function() { - // There is no point in using trigger() insted of triggerHandler(), as - // we don't fire native events - this.events.triggerHandler.apply(this.events, arguments); - return this; - }, - // Basically a trigger that returns the return value of the last listener - _triggerReturn: function() { - return this.events.triggerHandler.apply(this.events, arguments); - }, - destroy: function() { - this.olMap.destroy(); - this.element.removeData('mapQuery'); - } -}; -/** - ---- - -#MapQuery.Layer - -The MapQuery.Layer object. It is constructed with layer options object in the -map.`layers([options])` function or by passing a `layer:{options}` object in -the `mapQuery()` constructor. The Layer object is refered to as _layer_ in the -documentation. - */ -$.MapQuery.Layer = function(map, id, options) { - - var self = this; - // apply default options that are not specific to a layer - - this.id = id; - this.label = options.label || this.id; - // a reference to the map object is needed as it stores e.g. the list - // of all layers (and we need to keep track of it, if we delete a - // layer) - this.map = map; - - // true if this layer is a vector layer - this.isVector = false; - - // to bind and trigger jQuery events - this.events = $({}); - - this.handlers = { - // Triggers the jQuery events, after the OpenLayers events - // happened without any further processing - simple: function(data) { - this.trigger(data.type); - }, - // All OpenLayers events that are triggered by user interaction, - // like clicking somewhere or selecting a feature, need to be - // handled in a special way. Those OpenLayers events will then be - // triggered by MapQuery as well - // In case of the "featureselected" event, this means that the - // logic of handling the event is completely within the event - // handler. When ".select()" on a feature is called, it will just - // trigger the OpenLayers "featureselected" event, whose handler - // will then trigger the corresponding jQuery event. - includeFeature: function(data) { - var feature = new $.MapQuery.Feature(this, {olFeature: - data.feature}); - this.trigger(data.type, [feature]); - }, - prependLayer: function(data) { - this.trigger('layer' + data.type); - } - }; - - - // create the actual layer based on the options - // Returns layer and final options for the layer (for later re-use, - // e.g. zoomToMaxExtent). - var res = $.MapQuery.Layer.types[options.type.toLowerCase()].call( - this, options); - this.olLayer = res.layer; - this.options = res.options; - - // Some good documentation for the events is needed. Here is a short - // description on how the current events compare to the OpenLayer - // events on the layer: - // - added, remove: not needed, there's addlayer and removelayer - // - visibilitychanged: not needed, there's the changelayer event - // - move, moveend: not needed as you get them from the map, not the layer - // - loadstart, loadend: renamed to layerloadstart, layerloadend - this.olLayer.events.on({ - scope: this, - loadstart: this.handlers.prependLayer, - loadend: this.handlers.prependLayer, - featureselected: this.handlers.includeFeature, - featureunselected: this.handlers.includeFeature, - featureremoved: this.handlers.includeFeature - }); - - // To be able to retreive the MapQuery layer, when we only have the - // OpenLayers layer available. For example on the layeradded event. - // NOTE vmx 2012-02-26: Any nicer solution is welcome - this.olLayer.mapQueryId = this.id; -}; - -$.MapQuery.Layer.prototype = { -/** -###*layer*.`down([delta])` -_version added 0.1_ -####**Description**: move the layer down in the layer stack of the map - - * **delta** the amount of layers the layer has to move down in the layer -stack (default 1) - ->Returns layer (MapQuery.Layer) - - -The `.down()` method is a shortcut method for `.position(pos)` which makes -it easier to move a layer down in the layerstack relative to its current -position. It takes an integer and will try to move the layer down the number of -places given. If delta is bigger than the current position in the stack, it -will put the layer at the bottom. - - - layer.down(); //move layer 1 place down - layer.down(3); //move layer 3 places down - - */ - down: function(delta) { - delta = delta || 1; - var pos = this.position(); - pos = pos - delta; - if (pos<0) {pos = 0;} - this.position(pos); - return this; - }, - // NOTE vmx: this would be pretty cool, but it's not easily possible - // you could use $.each($.geojq.layer())) instead, this is for pure - // convenience. - each: function () {}, -/** -###*layer*.`remove()` -_version added 0.2_ -####**Description**: remove the layer from the map - ->Returns: map (MapQuery.Map) or false - - -The `.remove()` method allows us to remove a layer from the map. -It returns the `map` object if the layer was removed, or `false` if the -removal was prevented in the preremovelayer event. - - var id = layer.remove(); //remove this layer - - - */ - remove: function() { - // remove references to this layer that are stored in the - // map object - return this.map._removeLayer(this.id); - }, -/** -###*layer*.`position([position])` -_version added 0.1_ -####**Description**: get/set the `position` of the layer in the layer -stack of the map - - * **position** an integer setting the new position of the layer in the layer stack - ->Returns: position (integer) _or_ layer (MapQuery.Layer) - - -The `.position()` method allows us to change the position of the layer in the -layer stack. It will take into account the hidden baselayer that is used by -OpenLayers. The lowest layer is position 0. If no position is given, it will -return the current postion. - - - var pos = layer.position(); //get position of layer in the layer stack - layer.position(2); //put layer on position 2 in the layer stack - - */ - position: function(pos) { - if (pos===undefined) { - return this.map.olMap.getLayerIndex(this.olLayer)-1; - } - else { - this.map.olMap.setLayerIndex(this.olLayer, pos+1); - this.trigger('changelayer', ['position']); - return this; - } - }, -/** -###*layer*.`up([delta])` -_version added 0.1_ -####**Description**: move the layer up in the layer stack of the map - - * **delta** the amount of layers the layer has to move up in the layer -stack (default 1) - ->Returns: layer (MapQuery.Layer) - - -The `.up()` method is a shortcut method for `.position(pos)` which makes -it easier to move a layer up in the layerstack relative to its current -position. It takes an integer and will move the layer up the number of places -given. - - - - layer.up(); //move layer 1 place up - layer.up(3); //move layer 3 places up -*/ - up: function(delta) { - delta = delta || 1; - var pos = this.position(); - pos = pos + delta; - this.position(pos); - return this; - }, -/** -###*layer*.`visible([visible])` -_version added 0.1_ -####**Description**: get/set the `visible` state of the layer - - * **visible** a boolean setting the visibility of the layer - ->Returns: visible (boolean) - - -The `.visible()` method allows us to change the visibility of the layer. -If no visible is given, it will return the current visibility. - - - var vis = layer.visible(); //get the visibility of layer - layer.visible(true); //set visibility of layer to true - - */ - visible: function(vis) { - if (vis===undefined) { - return this.olLayer.getVisibility(); - } - else { - this.olLayer.setVisibility(vis); - this.trigger('changelayer', ['visibility']); - return this; - } - }, -/** -###*layer*.`opacity([opacity])` -_version added 0.1_ -####**Description**: get/set the `opacity` of the layer - - * **position** a float [0-1] setting the opacity of the layer - ->Returns: opacity (float) _or_ layer (MapQuery.Layer) - - -The `.opacity()` method allows us to change the opacity of the layer. -If no opacity is given, it will return the current opacity. - - - var opac = layer.opacity(); //get opacity of layer - layer.opacity(0.7); //set opacity of layer to 0.7 - - */ - opacity: function(opac) { - if (opac===undefined) { - // this.olLayer.opacity can be null if never - // set so return the visibility - var value = this.olLayer.opacity ? - this.olLayer.opacity : this.olLayer.getVisibility(); - return value; - } - else { - this.olLayer.setOpacity(opac); - this.trigger('changelayer', ['opacity']); - return this; - } - }, - // every event gets the layer passed in - bind: function() { - // Use the same bind function as for the map - this.map.bind.apply(this, arguments); - return this; - }, -/** -###*layer*.`trigger(name [, parameters])` -_version added 0.2_ -####**Description**: triggers an event on the layer and map - - * **name** the name of the event - * **parameters** additional parameters that will be passed on with the event - ->Returns: layer (MapQuery.Layer) - -The events get triggered on the layer as well as on the map. To subscribe to -the triggered events, you can either bind to the layer or the map. If bound -to the map, the second argument in the bind will be the layer the event -came from - - layer.bind('myEvent', function(evt) { - console.log('the values are: ' + evt.data[0] + ' and ' + evt.data[1]) - }); - map.bind('myEvent', function(evt, layer) { - console.log('the values are: ' + evt.data[0] + ' and ' + evt.data[1]) - }); - layer.trigger('myEvent', 'some', 'values'); -*/ - trigger: function() { - var args = Array.prototype.slice.call(arguments); - this.events.triggerHandler.apply(this.events, args); - - this._addLayerToArgs(args); - - this.map.events.triggerHandler.apply(this.map.events, args); - return this; - }, - // Basically a trigger that returns the return value of the last listener - _triggerReturn: function() { - var args = Array.prototype.slice.call(arguments); - var ret = this.events.triggerHandler.apply(this.events, args); - if (ret !== undefined) { - return ret; - } - - this._addLayerToArgs(args); - return this.events.triggerHandler.apply(this.map.events, args); - }, - // Adds the current layer to the event arguments, so that it is included - // in the event on the map - _addLayerToArgs: function(args) { - // Add layer for the map event - if (args.length===1) { - args.push([this]); - } - else { - args[1].unshift(this); - } - }, -/** -###*layer*.`features([options])` -_version added 0.2.0_ -####**Description**: get/set the features of a (vector) layer - -**options** an object of key-value pairs with options to create one or -more features - ->Returns: [features] (array of MapQuery.Feature) - - -The `.features()` method allows us to attach features to a mapQuery layer -object. It takes an options object with feature options. To add multiple -features, create an array of feature options objects. If an options object -is given, it will return the resulting feature(s). We can also use it to -retrieve all features currently attached to the layer. - - - // add an (vector) json layer to the map - var jsonlayer = map.layers({type:'json'}); - // add a feature to the layer - jsonlayer.features({geometry: {type: "Point", coordinates: [5.3, 7.4]}}); - // get all features of a layer (sorted with first added feature at the beginning - var features = jsonlayer.features(); -*/ - features: function(options) { - var self = this; - switch(arguments.length) { - // return all features - case 0: - return this._allFeatures(); - // add new feature(s) - case 1: - if (!$.isArray(options)) { - return this._addFeature(options); - } - else { - return $.map(options, function(feature) { - return self._addFeature(feature); - }); - } - break; - default: - throw('wrong argument number'); - } - }, - _allFeatures: function() { - var layer = this; - return $.map(layer.olLayer.features, function(feature) { - return new $.MapQuery.Feature(layer, {olFeature: feature}); - }); - }, - _addFeature: function(options) { - var feature = new $.MapQuery.Feature(this, options); - // NOTE vmx 2012-04-19: Not sure if this is a good idea, or if it would - // be better to include `options` with the preaddfeature event - if (this._triggerReturn('preaddfeature', [feature])===false) { - return false; - } - this.olLayer.addFeatures(feature.olFeature); - this.trigger('addfeature', [feature]); - return feature; - } -}; - -/** -#MapQuery.Feature - -The MapQuery.Feature object. It is constructed with a feature options object -in the layer.`features([options])` function. The Feautre object is refered to -as _feature_ in the documentation. - -TODO vmx 20110905: Support other geometry types than GeoJSON -options: - * geometry: A GeoJSON geometry - * properties: Properties for the feature -*/ -// Not in the pulic API docs: You can pass in as options: -// * olFeature: This will wrap the olFeature in a MapQuery feature -$.MapQuery.Feature = function(layer, options) { - // The ID is the - this._id = layer.map._createId(); - this.layer = layer; - - // Feature already exists on the layer, it just needs to be wrapped - // to an MapQuery feature - if (options.olFeature) { - this.olFeature = options.olFeature; - } - else { - // XXX vmx 20110905: Different feature types might make sense: - // (Geo)JSON, KML, WKT - // vmx 2012-04-14: I changed my mind quite some time ago. We should onlu - // support GeoJSON and let the user easily transfrom their format - // (e.g. KML) to GeoJSON, before they add a feature to the layer - var GeoJSON = new OpenLayers.Format.GeoJSON(); - var geometry = GeoJSON.parseGeometry(options.geometry); - geometry.transform(this.layer.map.displaProjection, - this.layer.map.projection); - - this.olFeature = new OpenLayers.Feature.Vector(geometry, - options.properties); - } - - // Modify the features to be more practical - // e.g. copy properties that should be easily accessed from the - // outside, out of the olLayer and to the feature level - this.properties = $.extend(true, {}, this.olFeature.attributes); - this.geometry = $.parseJSON( - new OpenLayers.Format.GeoJSON().write(this.olFeature.geometry)); - - return this; -}; - -$.MapQuery.Feature.prototype = { -/** -###*feature*.`remove()` -_version added 0.2.0_ -####**Description**: remove the feature from the layer - ->Returns: layer (layer) or false - - -The `.remove()` method allows us to remove a feature from the layer. -It returns the `layer` object if the feature was removed, or `false` if the -removal was prevented in the preremovefeature event. - - // add a feature to a layer - var feature = layer.features({geometry: {type: "Point", coordinates: [5.3, 7.4]}}); - // remove the feature again - feature.remove(); -*/ - remove: function() { - if (this.layer._triggerReturn('preremovefeature', [this])===false) { - return false; - } - this.layer.olLayer.removeFeatures(this.olFeature); - // The `removefeature` event is triggered by an OpenLayes event handler - return this.layer; - }, -/** -###*feature*.`select(exclusive)` -_version added 0.2.0_ -####**Description**: select a feature - -**exclusive** (boolean, default: true) True means that all other features get -deselectd - ->Returns: layer (layer) - - -The `.select()` method allows us to select a feature from the layer. -A `featureselected` will be fired. - - // add a feature to a layer - var feature = layer.features({geometry: {type: "Point", coordinates: [5.3, 7.4]}}); - // select the feature again - feature.select(); -*/ - select: function(exclusive) { - if (exclusive===undefined || exclusive===true) { - this.layer.map.selectFeatureControl.unselectAll(); - } - this.layer.map.selectFeatureControl.select(this.olFeature); - }, -/** -###*feature*.`unselect()` -_version added 0.2.0_ -####**Description**: unselect a feature - ->Returns: layer (layer) - - -The `.unselect()` method allows us to unselect a feature from the layer. -A `featureunselected` will be fired. - - // add a feature to a layer - var feature = layer.features({geometry: {type: "Point", coordinates: [5.3, 7.4]}}); - // select the feature - feature.select(); - // unselect the feature again - feature.unselect(); -*/ - unselect: function() { - this.layer.map.selectFeatureControl.unselect(this.olFeature); - } -}; - -$.fn.mapQuery = function(options) { - return this.each(function() { - var instance = $.data(this, 'mapQuery'); - if (!instance) { - $.data(this, 'mapQuery', new $.MapQuery.Map($(this), options)); - } - }); -}; - -$.extend($.MapQuery.Layer, { - types: { -/** -###*layer* `{type:bing}` -_version added 0.1_ -####**Description**: create a Bing maps layer - - * **view** a string ['road','hybrid','satellite'] to define which Bing maps -layer to use (default road) - * **key** Bing Maps API key for your application. Get you own at -http://bingmapsportal.com/ - * **label** string with the name of the layer - - - layers:[{ - type:'bing', //create a bing maps layer - view:'satellite', //use the bing satellite layer - key:'ArAGGPJ16xm0RX' //the Bing maps API key - }] - -*/ - bing: function(options) { - var o = $.extend(true, {}, $.fn.mapQuery.defaults.layer.all, - $.fn.mapQuery.defaults.layer.bing, - options); - var view = o.view; - switch(view){ - case 'road': - view = 'Road'; break; - case 'hybrid': - view = 'AerialWithLabels'; break; - case 'satellite': - view = 'Aerial'; break; - } - return { - layer: new OpenLayers.Layer.Bing({name: o.label, type:view,key:o.key}), - options: o - }; - }, - //Not sure this one is worth pursuing works with ecwp:// & jpip:// urls - //See ../lib/NCSOpenLayersECWP.js - ecwp: function(options) { - var o = $.extend(true, {}, $.fn.mapQuery.defaults.layer.all, - $.fn.mapQuery.defaults.layer.raster, - options); - return { - layer: new OpenLayers.Layer.ECWP(o.label, o.url, o), - options: o - }; - }, -/** -###*layer* `{type:google}` -_version added 0.1_ -####**Description**: create a Google maps layer - - * **view** a string ['road','hybrid','satellite'] to define which Google maps -layer to use (default road) - * **label** string with the name of the layer - - -*Note* you need to include the google maps v3 API in your application by adding -`` - - - layers:[{ - type:'google', //create a google maps layer - view:'hybrid' //use the google hybridlayer - }] - -*/ - google: function(options) { - var o = $.extend(true, {}, $.fn.mapQuery.defaults.layer.all, - $.fn.mapQuery.defaults.layer.google, - options); - var view = o.view; - switch(view){ - case 'road': - view = google.maps.MapTypeId.ROADMAP; break; - case 'terrain': - view = google.maps.MapTypeId.TERRAIN; break; - case 'hybrid': - view = google.maps.MapTypeId.HYBRID; break; - case 'satellite': - view = google.maps.MapTypeId.SATELLITE; break; - } - return { - layer: new OpenLayers.Layer.Google(o.label, {type:view}), - options: o - }; - }, -/** -###*layer* `{type:vector}` -_version added 0.1_ -####**Description**: create a vector layer - - * **label** string with the name of the layer - - - layers:[{ - type:'vector' //create a vector layer - }] - -*/ - vector: function(options) { - var o = $.extend(true, {}, $.fn.mapQuery.defaults.layer.all, - $.fn.mapQuery.defaults.layer.vector, - options); - this.isVector = true; - return { - layer: new OpenLayers.Layer.Vector(o.label), - options: o - }; - }, -/** -###*layer* `{type:json}` -_version added 0.1_ -####**Description**: create a JSON layer - - * **url** a string pointing to the location of the JSON data - * **strategies** a string ['bbox','cluster','filter','fixed','paging','refresh','save'] -stating which update strategy should be used (default fixed) -(see also http://dev.openlayers.org/apidocs/files/OpenLayers/Strategy-js.html) - * **projection** a string with the projection of the JSON data (default EPSG:4326) - * **styleMap** {object} the style to be used to render the JSON data - * **label** string with the name of the layer - - - layers:[{ - type: 'JSON', - url: 'data/reservate.json', - label: 'reservate' - }] - -*/ - json: function(options) { - var o = $.extend(true, {}, $.fn.mapQuery.defaults.layer.all, - $.fn.mapQuery.defaults.layer.vector, - options); - this.isVector = true; - var strategies = []; - for (var i in o.strategies) { - if(o.strategies.hasOwnProperty(i)) { - switch(o.strategies[i].toLowerCase()) { - case 'bbox': - strategies.push(new OpenLayers.Strategy.BBOX()); - break; - case 'cluster': - strategies.push(new OpenLayers.Strategy.Cluster()); - break; - case 'filter': - strategies.push(new OpenLayers.Strategy.Filter()); - break; - case 'fixed': - strategies.push(new OpenLayers.Strategy.Fixed()); - break; - case 'paging': - strategies.push(new OpenLayers.Strategy.Paging()); - break; - case 'refresh': - strategies.push(new OpenLayers.Strategy.Refresh()); - break; - case 'save': - strategies.push(new OpenLayers.Strategy.Save()); - break; - } - } - } - var protocol; - - var params = { - strategies: strategies, - projection: o.projection || 'EPSG:4326', - styleMap: o.styleMap - }; - - if (o.url) { - // only use JSONP if we use http(s) - if (o.url.match(/^https?:\/\//)!==null && - !$.MapQuery.util.sameOrigin(o.url)) { - protocol = 'Script'; - } - else { - protocol = 'HTTP'; - } - params.protocol = new OpenLayers.Protocol[protocol]({ - url: o.url, - format: new OpenLayers.Format.GeoJSON() - }); - } - - var layer = new OpenLayers.Layer.Vector(o.label, params); - return { - layer: layer, - options: o - }; - }, -/** -###*layer* `{type:osm}` -_version added 0.1_ -####**Description**: create an OpenStreetMap layer - - - * **label** string with the name of the layer - * **url** A single URL (string) or an array of URLs to OSM-like server like -Cloudmade - * **attribution** A string to put some attribution on the map - - layers:[{ - type: 'osm', - url: [ - 'http://a.tile.cloudmade.com//999/256/${z}/${x}/${y}.png', - 'http://b.tile.cloudmade.com//999/256/${z}/${x}/${y}.png', - 'http://c.tile.cloudmade.com//999/256/${z}/${x}/${y}.png' - ], - attribution: "Data © 2009 - OpenStreetMap. Rendering © 2009 - CloudMade." - }] - -*/ - osm: function(options) { - var o = $.extend(true, {}, $.fn.mapQuery.defaults.layer.all, - $.fn.mapQuery.defaults.layer.osm, - options); - var label = options.label || undefined; - var url = options.url || undefined; - return { - layer: new OpenLayers.Layer.OSM(label, url, o), - options: o - }; - }, -/** -###*layer* `{type:tms}` -_version added 0.1_ -####**Description**: create an OpenStreetMap layer - - - * **label** string with the name of the layer - * **url** A single URL (string) or an array of URLs to the TMS end point - * **layer** The identifier for the as advertised by the service. - For example, if the service advertises a with ‘href=”http://tms.osgeo.org/1.0.0/vmap0”’, - the layer property would be set to “vmap0”. - * **format** The image format (default png) - - layers:[{ - type: 'tms', - url: 'http://tilecache.osgeo.org/wms-c/Basic.py/', - layer: 'basic' - }] - -*/ - tms: function(options) { - var o = $.extend(true, {}, $.fn.mapQuery.defaults.layer.all, - $.fn.mapQuery.defaults.layer.tms, - options); - var label = options.label || undefined; - var url = options.url || undefined; - var params = { - layername: o.layer, - type: o.format - }; - return { - layer: new OpenLayers.Layer.TMS(label, url, params), - options: o - }; - }, -/** -###*layer* `{type:wms}` -_version added 0.1_ -####**Description**: create a WMS layer - - * **url** a string pointing to the location of the WMS service - * **layers** a string with the name of the WMS layer(s) - * **format** a string with format of the WMS image (default image/jpeg) - * **transparent** a boolean for requesting images with transparency - * **label** string with the name of the layer - * **wms_parameters** an hashtable of extra GetMap query string parameters and parameter values - - - layers:[{ - type:'wms', - url:'http://vmap0.tiles.osgeo.org/wms/vmap0', - layers:'basic' - }] - -*/ - wms: function(options) { - var o = $.extend(true, {}, $.fn.mapQuery.defaults.layer.all, - $.fn.mapQuery.defaults.layer.raster, - options); - var params = { - layers: o.layers, - transparent: o.transparent, - format: o.format - }; - if(typeof o.wms_parameters != "undefined"){ - params = $.extend(params, o.wms_parameters); - } - return { - layer: new OpenLayers.Layer.WMS(o.label, o.url, params, o), - options: o - }; - }, -//TODO complete this documentation -/** -###*layer* `{type:wmts}` -_version added 0.1_ -####**Description**: create a WMTS (tiling) layer - - * **url** a string pointing to the location of the WMTS service - * **layer** a string with the name of the WMTS layer - * **matrixSet** a string with one of the advertised matrix set identifiers - * **style** a string with one of the advertised layer styles - * **label** string with the name of the layer - - - layers:[{ - type:'wmts' - }] - -*/ - wmts: function(options) { - var o = $.extend(true, {}, $.fn.mapQuery.defaults.layer.all, - $.fn.mapQuery.defaults.layer.wmts); - //smo 20110614 the maxExtent is set here with OpenLayers.Bounds - if (options.sphericalMercator===true) { - $.extend(true, o, { - maxExtent: new OpenLayers.Bounds( - -128 * 156543.0339, -128 * 156543.0339, - 128 * 156543.0339, 128 * 156543.0339), - maxResolution: 156543.0339, - numZoomLevels: 19, - projection: 'EPSG:900913', - units: 'm' - }); - } - $.extend(true, o, options); - // use by default all options that were passed in for the final - // openlayers layer consrtuctor - var params = $.extend(true, {}, o); - - // remove trailing slash - if (params.url.charAt(params.url.length-1)==='/') { - params.url = params.url.slice(0, params.url.length-1); - } - // if no options that influence the URL where set, extract them - // from the given URL - if (o.layer===undefined && o.matrixSet===undefined && - o.style===undefined) { - var url = $.MapQuery.util.parseUri(params.url); - var urlParts = url.path.split('/'); - var wmtsPath = urlParts.slice(urlParts.length-3); - params.url = url.protocol ? url.protocol + '//' : ''; - params.url += url.authority + - // remove WMTS version (1.0.0) as well - urlParts.slice(0, urlParts.length-4).join('/'); - params.layer = wmtsPath[0]; - params.style = wmtsPath[1]; - params.matrixSet = wmtsPath[2]; - } - return { - layer: new OpenLayers.Layer.WMTS(params), - options: o - }; - } - } -}); - -// default options for the map and layers -$.fn.mapQuery.defaults = { - // The controls for the map are per instance, therefore it need to - // be an function that can be initiated per instance - map: function() { - return { - // Remove quirky moveTo behavior, probably not a good idea in the - // long run - allOverlays: true, - controls: [ - // Since OL2.11 the Navigation control includes touch navigation as well - new OpenLayers.Control.Navigation({ - documentDrag: true, - dragPanOptions: { - interval: 1, - enableKinetic: true - } - }), - new OpenLayers.Control.ArgParser(), - new OpenLayers.Control.Attribution(), - new OpenLayers.Control.KeyboardDefaults() - ], - format: 'image/png', - maxExtent: [-128*156543.0339, - -128*156543.0339, - 128*156543.0339, - 128*156543.0339], - maxResolution: 156543.0339, - numZoomLevels: 19, - projection: 'EPSG:900913', - displayProjection: 'EPSG:4326', - zoomToMaxExtent: true, - units: 'm' - }; - }, - layer: { - all: { - isBaseLayer: false, - //in general it is kinda pointless to load tiles outside a maxextent - displayOutsideMaxExtent: false - }, - bing: { - transitionEffect: 'resize', - view: 'road', - sphericalMercator: true - }, - google: { - transitionEffect: 'resize', - view: 'road', - sphericalMercator: true - }, - osm: { - transitionEffect: 'resize', - sphericalMercator: true - }, - tms: { - transitionEffect: 'resize', - format: 'png' - }, - raster: { - // options for raster layers - transparent: true - }, - vector: { - // options for vector layers - strategies: ['bbox'] - }, - wmts: { - format: 'image/jpeg', - requestEncoding: 'REST', - sphericalMercator: false - } - } -}; - -// Some utility functions - -$.MapQuery.util = {}; -// http://blog.stevenlevithan.com/archives/parseuri (2010-12-18) -// parseUri 1.2.2 -// (c) Steven Levithan -// MIT License -// Edited to include the colon in the protocol, just like it is -// with window.location.protocol -$.MapQuery.util.parseUri = function (str) { - var o = $.MapQuery.util.parseUri.options, - m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), - uri = {}, - i = 14; - - while (i--) {uri[o.key[i]] = m[i] || "";} - - uri[o.q.name] = {}; - uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { - if ($1) {uri[o.q.name][$1] = $2;} - }); - - return uri; -}; -$.MapQuery.util.parseUri.options = { - strictMode: false, - key: ["source", "protocol", "authority", "userInfo", "user", - "password", "host", "port", "relative", "path", "directory", - "file", "query", "anchor"], - q: { - name: "queryKey", - parser: /(?:^|&)([^&=]*)=?([^&]*)/g - }, - parser: { - strict: /^(?:([^:\/?#]+:))?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, - loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+:))?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ - } -}; -// Checks whether a URL conforms to the same origin policy or not -$.MapQuery.util.sameOrigin = function(url) { - var parsed = $.MapQuery.util.parseUri(url); - parsed.protocol = parsed.protocol || 'file:'; - parsed.port = parsed.port || "80"; - - var current = { - domain: document.domain, - port: window.location.port, - protocol: window.location.protocol - }; - current.port = current.port || "80"; - - return parsed.protocol===current.protocol && - parsed.port===current.port && - // the current domain is a suffix of the parsed domain - parsed.host.match(current.domain + '$')!==null; -}; -})(jQuery); diff --git a/src/jquery.mapquery.legend.js b/src/jquery.mapquery.legend.js deleted file mode 100644 index 0a47540..0000000 --- a/src/jquery.mapquery.legend.js +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright (c) 2011 by MapQuery Contributors (see AUTHORS for - * full list of contributors). Published under the MIT license. - * See https://github.com/mapquery/mapquery/blob/master/LICENSE for the - * full text of the license. */ - -/** -#jquery.mapquery.legend.js -A plugin on mapquery.core to add a legend to a layer. It will check if the layer -is within a valid extent and zoom range. And if not will return an error message. -*/ - -(function($, MQ) { -$.extend( $.fn.mapQuery.defaults.layer.all, { - legend: { - url: '', - msg: '' - } -}); -//possible error messages to display in the legend -LEGEND_ERRORS= ['E_ZOOMOUT', 'E_ZOOMIN', 'E_OUTSIDEBOX']; -$.extend(MQ.Layer.prototype, { -/** -###**layer**.`legend([options])` -_version added 0.1_ -####**Description**: get/set the legend of a layer - -**options** url:url the url to the legend image - ->Returns: {url:url, msg:'E\_ZOOMOUT' | 'E\_ZOOMIN' | 'E\_OUTSIDEBOX' | ''} - - -The `.legend()` function allows us to attach a legend image to a layer. It will -also check if the layer is not visible due to wrong extent or zoom level. -It will return an error message which can be used to notify the user. - - - var legend = layer.legend(); //get the current legend - //set the legend url to legendimage.png - layer.legend({url:'legendimage.png'}) - - */ - //get/set the legend object - legend: function(options) { - //get the legend object - var center = this.map.center(); - if (arguments.length===0) { - this._checkZoom(center); - //if zoom = ok, check box - if(this.options.legend.msg==''){ - this._checkBox(center); - } - return this.options.legend; - } - //set the legend url - if (options.url!==undefined) { - this.options.legend.url = options.url; - return this.options.legend; - } - }, - //Check if the layer has a maximum box set and if the current box - //is outside these settings, set the legend.msg accordingly - _checkBox: function(center){ - var maxExtent = this.options.maxExtent; - if(maxExtent!==undefined) { - var mapBounds = new OpenLayers.Bounds( - center.box[0],center.box[1],center.box[2],center.box[3]); - var layerBounds = new OpenLayers.Bounds( - maxExtent[0],maxExtent[1],maxExtent[2],maxExtent[3]); - var inside = layerBounds.containsBounds(mapBounds, true); - this.options.legend.msg = inside?'':LEGEND_ERRORS[2]; - } - }, - //Check if the layer has a minimum or maximum zoom set and if the - //current zoom is outside these settings, set the legend.msg accordingly - _checkZoom: function(center){ - var zoom = center.zoom; - var maxZoom = this.options.maxZoom; - var minZoom = this.options.minZoom; - this.options.legend.msg=( - maxZoom!==undefined&&maxZoomzoom)? LEGEND_ERRORS[1]:''; - } - -}); - -})(jQuery, $.MapQuery); diff --git a/src/jquery.mapquery.mqFeatureInfo.js b/src/jquery.mapquery.mqFeatureInfo.js deleted file mode 100644 index 3747902..0000000 --- a/src/jquery.mapquery.mqFeatureInfo.js +++ /dev/null @@ -1,91 +0,0 @@ -/* Copyright (c) 2011 by MapQuery Contributors (see AUTHORS for - * full list of contributors). Published under the MIT license. - * See https://github.com/mapquery/mapquery/blob/master/LICENSE for the - * full text of the license. */ - -/** -#jquery.mapquery.mqFeatureInfo.js -The file containing the mqFeatureInfo Widget - -### *$('selector')*.`mqFeatureInfo([options])` -_version added 0.1_ -####**Description**: create a widget to show feature information - - + **options** - - **map**: the mapquery instance - - **contents**: A function that returns HTML to be put into the popup. - It has one argument, which is the OpenLayers feature that was selected. - - **title**: Title that will be displayed at the top of the feature - info (default: Feature information) - ->Returns: widget - - -The mqFeatureInfo widget allows us to display the information -of a selected feature. - - - $('#featureinfo').mqFeatureInfo({ - map: '#map', - contents: function(feature) { - return '

' + feature.properties.id + '

'; - } - }); - - */ -(function($) { -$.template('mqFeatureInfo', - '
' + - '${title}' + - '
' + - '{{html contents}}'); -$.widget("mapQuery.mqFeatureInfo", { - options: { - // The MapQuery instance - map: undefined, - - // A function that returns HTML to be put into the popup. - // It has one argument, which is the OpenLayers feature that - // was selected. - contents: undefined, - - // Title that will be displayed at the top of the feature info - title: "Feature information" - }, - _create: function() { - var map; - var self = this; - var element = this.element; - - //get the mapquery object - map = $(this.options.map).data('mapQuery'); - - this.element.addClass('ui-dialog ui-widget ui-widget-content ' + - 'ui-corner-all'); - - map.bind("featureselected", {widget: self}, self._onFeatureselected); - map.bind("featureunselected", {widget: self}, - self._onFeatureunselected); - - }, - _destroy: function() { - this.element.removeClass('ui-dialog ui-widget ui-widget-content ' + - 'ui-corner-all') - .empty(); - }, - _onFeatureselected: function(evt, layer, feature) { - var self = evt.data.widget; - var element = self.element; - var contents = self.options.contents.call(self.options, feature); - - element.html($.tmpl('mqFeatureInfo', { - title: self.options.title, - contents: contents - })); - }, - _onFeatureunselected: function(evt) { - var self = evt.data.widget; - self.element.empty(); - } -}); -})(jQuery); diff --git a/src/jquery.mapquery.mqLayerControl.js b/src/jquery.mapquery.mqLayerControl.js deleted file mode 100644 index 3f2a35d..0000000 --- a/src/jquery.mapquery.mqLayerControl.js +++ /dev/null @@ -1,143 +0,0 @@ -/* Copyright (c) 2011 by MapQuery Contributors (see AUTHORS for - * full list of contributors). Published under the MIT license. - * See https://github.com/mapquery/mapquery/blob/master/LICENSE for the - * full text of the license. */ - - -/** -#jquery.mapquery.mqLayerControl.js -The file containing the mqLayerControl Widget - -### *$('selector')*.`mqLayerControl([options])` -_version added 0.1_ -####**Description**: create a widget to control the order of layers - - + **options**: - - **map**: the mapquery instance - ->Returns: widget - - -The mqLayerControl allows us to control the order and visibility of layers. We -can also remove layers. **Note**: the mqLayerManager widget does this and more. -It is likely that the two will be merged in the future - - - $('#layercontrol').mqLayerControl({ - map: '#map' - }); - - */ - -(function($) { -$.template('mqLayerControl', - '
  • '+ - '
    '+ - '
    ${label}
    ' + - '' + - ''+ - '
    '+ - '
  • '); - -$.widget("mapQuery.mqLayerControl", { - options: { - // The MapQuery instance - map: undefined - - }, - _create: function() { - var map; - var self = this; - var element = this.element; - - //get the mapquery object - map = $(this.options.map).data('mapQuery'); - - element.append('
      '); - var ulElement = element.children('ul'); - $.each(map.layers().reverse(), function() { - self._add(ulElement, this); - }); - - element.find('button').button(); - ulElement.sortable({ - axis:'y', - - update: function(event, ui) { - var layerNodes = ui.item.siblings().andSelf(); - var num = layerNodes.length-1; - layerNodes.each(function(i) { - var layer = $(this).data('layer'); - var pos = num-i; - var label = $('span.label', this); - var icon = label.children(); - layer.position(pos); - label.text(layer.label) - .prepend(icon); - }); - } - }); - - // bind events for the layer controls - element.delegate('.mq-layercontrol-visibility', 'change', function() { - var checkbox = $(this); - var layer = checkbox.parents('li').data('layer'); - var vis = checkbox.attr('checked') ? true : false; - layer.visible(vis); - }); - - element.delegate('button', 'click', function() { - var control = $(this).parents('li'); - self._remove(control.data('layer').id); - }); - - //binding events - map.bind("addlayer", - {widget:self,map:map,control:ulElement}, - self._onLayerAdd); - - map.bind("removeLayer", - {widget:self}, - self._onLayerRemove); - }, - _destroy: function() { - this.element.removeClass('ui-widget ui-helper-clearfix ' + - 'ui-corner-all') - .empty(); - }, - _add: function(element, layer) { - //$.tmpl('mqLayerControl', layer) - // We don't need to pass in the whole layer object - $.tmpl('mqLayerControl', { - id: layer.id, - label: layer.label, - position: layer.position(), - visible: layer.visible() - }) - // save layer layer in the DOM, so we can easily - // hide/show/delete the layer with live events - .data('layer', layer) - .prependTo(element); - }, - - _onLayerAdd: function(evt, layer) { - evt.data.widget._add(evt.data.control,layer); - }, - - // if _remove is called from the mqRemoveLayer event it means that the - // layer is already removed, so set removed to true - _remove: function(id, removed) { - var controlId = "#mq-layercontrol-"+id; - var control = $(controlId); - if(!removed){ control.data('layer').remove();} - control.fadeOut(function() { - $(this).remove(); - }); - }, - - _onLayerRemove: function(evt, id) { - evt.data.widget._remove(id,true); - } - -}); -})(jQuery); diff --git a/src/jquery.mapquery.mqLayerManager.js b/src/jquery.mapquery.mqLayerManager.js deleted file mode 100644 index 8631731..0000000 --- a/src/jquery.mapquery.mqLayerManager.js +++ /dev/null @@ -1,310 +0,0 @@ -/* Copyright (c) 2011 by MapQuery Contributors (see AUTHORS for - * full list of contributors). Published under the MIT license. - * See https://github.com/mapquery/mapquery/blob/master/LICENSE for the - * full text of the license. */ - -/** -#jquery.mapquery.mqLayerManager.js -The file containing the mqLayerManager Widget - -### *$('selector')*.`mqLayerManager([options])` -_version added 0.1_ -####**Description**: create a widget to manage layers - - + **options**: - - **map**: the mapquery instance - - **title**: Title that will be displayed at the top of the - layer manager (default: Layer Manager) - - ->Returns: widget - ->Requires: jquery.mapquery.legend.js - - -The mqLayerManager allows us to control the order, opacity and visibility -of layers. We can also remove layers. It also shows the legend of the layer if -available and the error messages provided by the legend plugin. It listens to -layerchange event for order, transparancy and opacity changes. It listens to -addlayer and removelayer events to keep track which layers are on the map. - - - $('#layermanager').mqLayerManager({map:'#map'}); - - - */ -(function($) { -$.template('mqLayerManager', - '
      '+ - '
      '); - -$.template('mqLayerManagerElement', - '
      '+ - '
      '+ - '${label}'+ - ''+ - 'close
      '+ - '
      '+ - '
      '+ - ''+ - '
      '+ - '
      '+ - '
      '+ - '
      '+ - '{{if imgUrl}}'+ - ''+ - '{{/if}}'+ - '{{if errMsg}}'+ - '${errMsg}'+ - '{{/if}}'+ - '
      '+ - '
      '+ - '
      '); - -$.widget("mapQuery.mqLayerManager", { - options: { - // The MapQuery instance - map: undefined, - - // Title that will be displayed at the top of the popup - title: "Layer Manager" - }, - _create: function() { - var map; - var zoom; - var numzoomlevels; - var self = this; - var element = this.element; - - //get the mapquery object - map = $(this.options.map).data('mapQuery'); - - this.element.addClass('ui-widget ui-helper-clearfix ' + - 'ui-corner-all'); - - var lmElement = $.tmpl('mqLayerManager').appendTo(element); - element.find('.ui-icon-closethick').button(); - - lmElement.sortable({ - axis:'y', - handle: '.mq-layermanager-element-header', - update: function(event, ui) { - var layerNodes = ui.item.siblings().andSelf(); - var num = layerNodes.length-1; - layerNodes.each(function(i) { - var layer = $(this).data('layer'); - var pos = num-i; - self._position(layer, pos); - }); - } - }); - - //these layers are already added to the map as such won't trigger - //and event, we call the draw function directly - $.each(map.layers().reverse(), function(){ - self._layerAdded(lmElement, this); - }); - - element.delegate('.mq-layermanager-element-vischeckbox', - 'change',function() { - var checkbox = $(this); - var element = checkbox.parents('.mq-layermanager-element'); - var layer = element.data('layer'); - var self = element.data('self'); - self._visible(layer,checkbox.is(':checked')); - }); - - element.delegate('.ui-icon-closethick', 'click', function() { - var control = $(this).parents('.mq-layermanager-element'); - self._remove(control.data('layer')); - }); - - //binding events - map.bind("addlayer", - {widget:self,control:lmElement}, - self._onLayerAdd); - - map.bind("removelayer", - {widget:self,control:lmElement}, - self._onLayerRemove); - - map.bind("changelayer", - {widget:self,map:map,control:lmElement}, - self._onLayerChange); - - map.bind("moveend", - {widget:self,map:map,control:lmElement}, - self._onMoveEnd); - }, - _destroy: function() { - this.element.removeClass(' ui-widget ui-helper-clearfix ' + - 'ui-corner-all') - .empty(); - }, - //functions that actually change things on the map - //call these from within the widget to do stuff on the map - //their actions will trigger events on the map and in return - //will trigger the _layer* functions - _add: function(map,layer) { - map.layers(layer); - }, - - _remove: function(layer) { - layer.remove(); - }, - - _position: function(layer, pos) { - layer.position(pos); - }, - - _visible: function(layer, vis) { - layer.visible(vis); - }, - - _opacity: function(layer,opac) { - layer.opacity(opac); - }, - - //functions that change the widget - _layerAdded: function(widget, layer) { - var self = this; - var error = layer.legend().msg; - var url; - switch(error){ - case '': - url =layer.legend().url; - if(url==''){error='No legend for this layer';} - break; - case 'E_ZOOMOUT': - error = 'Please zoom out to see this layer'; - break; - case 'E_ZOOMIN': - error = 'Please zoom in to see this layer'; - break; - case 'E_OUTSIDEBOX': - error = 'This layer is outside the current view'; - break; - } - - var layerElement = $.tmpl('mqLayerManagerElement',{ - id: layer.id, - label: layer.label, - position: layer.position(), - visible: layer.visible(), - imgUrl: url, - opacity: layer.visible()?layer.opacity():0, - errMsg: error - }) - // save layer layer in the DOM, so we can easily - // hide/show/delete the layer with live events - .data('layer', layer) - .data('self',self) - .prependTo(widget); - - $(".mq-layermanager-element-slider", layerElement).slider({ - max: 100, - step: 1, - value: layer.visible()?layer.opacity()*100:0, - slide: function(event, ui) { - var layer = layerElement.data('layer'); - var self = layerElement.data('self'); - self._opacity(layer,ui.value/100); - }, - //using the slide event to check for the checkbox often gives errors. - change: function(event, ui) { - var layer = layerElement.data('layer'); - var self = layerElement.data('self'); - if(ui.value>=0.01) { - if(!layer.visible()){layer.visible(true);} - } - if(ui.value<0.01) { - if(layer.visible()){layer.visible(false);} - } - } - }); - }, - - _layerRemoved: function(widget, id) { - var control = $("#mq-layermanager-element-"+id); - control.fadeOut(function() { - $(this).remove(); - }); - }, - - _layerPosition: function(widget, layer) { - var layerNodes = widget.element.find('.mq-layermanager-element'); - var num = layerNodes.length-1; - var tmpNodes = []; - tmpNodes.length = layerNodes.length; - layerNodes.each(function() { - var layer = $(this).data('layer'); - var pos = num-layer.position(); - tmpNodes[pos]= this; - }); - for (i=0;iReturns: widget - - -The mqMousePosition allows us to show the coordinates under the mouse pointer - - - $('#mousepointer').mqMousePointer({ - map: '#map' - }); - - */ -(function($) { -$.template('mqMousePosition', - '
      '+ - ''+ - '
      '+ - '
      '+ - '
      '); - -$.widget("mapQuery.mqMousePosition", { - options: { - // The MapQuery instance - map: undefined, - - // The number of decimals for the coordinates - // default: 2 - // TODO: JCB20110630 use dynamic precision based on the pixel - // resolution, no need to configure precision - precision: 2, - - // The label of the x-value - // default: 'x' - x: 'x', - // The label of the y-value - // default: 'y' - y: 'y' - - }, - _create: function() { - //get the mapquery object - this.map = $(this.options.map).data('mapQuery'); - - this.map.element.bind('mousemove', {widget: this}, this._onMousemove); - $.tmpl('mqMousePosition', {}).appendTo(this.element); - - }, - _destroy: function() { - this.element.removeClass('ui-widget ui-helper-clearfix ' + - 'ui-corner-all') - .empty(); - }, - _onMousemove: function(evt) { - var self = evt.data.widget; - var x = evt.pageX; - var y = evt.pageY; - var mapProjection = self.map.projection; - var displayProjection = - self.map.displayProjection; - var pos = self.map.olMap.getLonLatFromLayerPx( - new OpenLayers.Pixel(x, y)); - //if the coordinates should be displayed in something else, - //set them via the map displayProjection option - if(mapProjection != self.map.displayProjection) { - pos = pos.transform(mapProjection, displayProjection); - } - $("#mq-mouseposition-x", self.element).html( - self.options.x + ': ' + pos.lon.toFixed(self.options.precision)); - $("#mq-mouseposition-y", self.element).html( - self.options.y + ': ' + pos.lat.toFixed(self.options.precision)); - } -}); -})(jQuery); diff --git a/src/jquery.mapquery.mqOverviewMap.js b/src/jquery.mapquery.mqOverviewMap.js deleted file mode 100644 index 2b79470..0000000 --- a/src/jquery.mapquery.mqOverviewMap.js +++ /dev/null @@ -1,133 +0,0 @@ -/* Copyright (c) 2011 by MapQuery Contributors (see AUTHORS for - * full list of contributors). Published under the MIT license. - * See https://github.com/mapquery/mapquery/blob/master/LICENSE for the - * full text of the license. */ - - -/** -#jquery.mapquery.mqOverviewMap.js -The file containing the mqOverviewMap Widget - -### *$('selector')*.`mqOverviewMap([options])` -_version added 0.1_ -####**Description**: create a widget to show an overview map - - + **options**: - - **map**: the mapquery instance - - **title**: Title that will be displayed at the top of the overview window - - **position**: The position of the overview map dialog (default right bottom) - - **width**: width of the overview window (default 300px) - - **height**: height of the overview window (default 200px) - ->Returns: widget - - -The mqOverviewMap widget allows us to display an overview map dialog -(http://jqueryui.com/demos/dialog/) and a toggle button. The dialog will be put -on the given position see (http://jqueryui.com/demos/dialog/#option-position). -The toggle button will be put in the element where the widget is attached to. - - - $('#overviewmap').mqOverviewMap({ - map: '#map', - position: ['right','top'] - }); - - */ -(function($) { -$.template('mqOverviewMap', - '
      '+ - '
      '+ - '
      '+ - '
      '+ - '
      '); - -$.widget("mapQuery.mqOverviewMap", { - options: { - // The MapQuery instance - map: undefined, - - // Title that will be displayed at the top of the overview window - title: "Overview map", - - //the position of the overview map, default right bottom of the window - position: ['right','bottom'], - - //initial size of the overviewmap - width: 300, - height: 200 - }, - _create: function() { - var map; - var self = this; - var element = this.element; - //TODO smo20110620 make this configurable - var id = 'mqOverviewMap-dialog'; - - //get the mapquery object - map = $(this.options.map).data('mapQuery'); - - this.element.addClass('ui-widget ui-helper-clearfix ' + - 'ui-corner-all'); - - $.tmpl('mqOverviewMap',{ - id: id}).appendTo(element); - - var dialogElement = $('#'+id).dialog({ - dialogClass: 'mq-overviewmap-dialog', - autoOpen: true, - width: this.options.width, - height: this.options.height, - title: this.options.title, - position: this.options.position, - resizeStop: function (event, ui) { - $('.olMap', this).width($(this).width()); - $('.olMap', this).height($(this).height()); - }, - close:function(event,ui){ - $('.mq-overviewmap-close').removeClass( - 'mq-overviewmap-close ui-icon-arrowthick-1-se').addClass( - 'mq-overviewmap-open ui-icon-arrowthick-1-nw'); - } - - }); - - var overviewmapsize = { - w: $(dialogElement).width(), - h: $(dialogElement).height() }; - var mapOptions = map.olMapOptions; - //remove the controls, otherwise you end up with recursing events - delete mapOptions.controls; - // use the lowest layer of the map as overviewmap - // TODO: make the layer configurable - var overview = new OpenLayers.Control.OverviewMap( - {div: document.getElementById(id),size:overviewmapsize, - mapOptions:mapOptions,layers:[ - map.layers().reverse()[0].olLayer.clone()]}); - map.olMap.addControl(overview); - - // remove OpenLayers blue border around overviewmap - $('.olControlOverviewMapElement', dialogElement).removeClass( - 'olControlOverviewMapElement'); - - element.delegate('.mq-overviewmap-close', 'click', function() { - $(this).removeClass( - 'mq-overviewmap-close ui-icon-arrowthick-1-se').addClass( - 'mq-overviewmap-open ui-icon-arrowthick-1-nw'); - $('#'+id).dialog('close'); - }); - element.delegate('.mq-overviewmap-open', 'click', function() { - $(this).removeClass( - 'mq-overviewmap-open ui-icon-arrowthick-1-nw').addClass( - 'mq-overviewmap-close ui-icon-arrowthick-1-se'); - $('#'+id).dialog('open'); - }); - }, - _destroy: function() { - this.element.removeClass(' ui-widget ui-helper-clearfix ' + - 'ui-corner-all') - .empty(); - } - -}); -})(jQuery); diff --git a/src/jquery.mapquery.mqPopup.js b/src/jquery.mapquery.mqPopup.js deleted file mode 100644 index d49f1b3..0000000 --- a/src/jquery.mapquery.mqPopup.js +++ /dev/null @@ -1,143 +0,0 @@ -/* Copyright (c) 2011 by MapQuery Contributors (see AUTHORS for - * full list of contributors). Published under the MIT license. - * See https://github.com/mapquery/mapquery/blob/master/LICENSE for the - * full text of the license. */ - -/** -#jquery.mapquery.mqPopup.js -The file containing the mqPopup Widget - -### *$('selector')*.`mqPopup([options])` -_version added 0.1_ -####**Description**: create a popup at a click on a feature - - + **options:** - - **map**: the mapquery instance - - **contents**: A function that returns HTML to be put into the popup. - It has one argument, which is the OpenLayers feature that was selected. - - **title**: Title that will be displayed at the top of the feature - info (default: Feature popup) - - **padding**: Padding (in px) around the popup when it needs to be - panned in (default 10) - ->Returns: widget - - -The mqPopup widget allows us to show a popup next to a feature. It will pan with -the feature. - - - $('#popup').mqPopup({ - map: '#map', - contents: function(feature) { - return '

      ' + feature.properties.id + '

      '; - } - }); - - */ -(function($) { -$.template('mqPopup', - '
      '+ - '${title}'+ - ''+ - 'close'+ - '
      ' + - '{{html contents}}'); -// Parts of the code were inspired by the code from GeoExt -// (http://geoext.org/) which is licensed under BSD license -$.widget("mapQuery.mqPopup", { - options: { - // The MapQuery instance - map: undefined, - - // A function that returns HTML to be put into the popup. - // It has one argument, which is the OpenLayers feature that - // was selected. - contents: undefined, - - // Title that will be displayed at the top of the popup - title: "Feature Popup", - - // Padding (in px) around the popup when it needs to be panned in - padding: 10 - }, - _create: function() { - var map; - var self = this; - - this.element.addClass('ui-dialog ui-widget ui-widget-content ' + - 'ui-corner-all'); - - map = $(this.options.map).data('mapQuery'); - map.bind('featureselected', {widget: self}, self._onFeatureselected); - map.bind('featureunselected', {widget: self}, self._onFeatureunselected); - map.bind("move", {widget: self}, self._onMove); - }, - _destroy: function() { - this.element.removeClass('ui-dialog ui-widget ui-widget-content ' + - 'ui-corner-all') - .empty(); - }, - _onFeatureselected: function(evt, layer, feature) { - var map = this; - var self = evt.data.widget; - var element = self.element; - var contents = self.options.contents.call(self.options, feature); - - // save position so that the popup can be moved with the feature - self.lonLat = $.MapQuery.getFeaturePosition(feature); - - element.html($.tmpl('mqPopup', { - title: self.options.title, - contents: contents - })).find('a.ui-dialog-titlebar-close').bind('click', function() { - element.hide(); - self.lonLat = null; - feature.unselect(); - }); - - var pixels = map.pixelsFromPosition(self.lonLat[0], self.lonLat[1]); - element.show(0, function() { - $(this).css('z-index', layer.zIndex()+1000); - self._setPosition(map, pixels); - }); - - // if the popup is outside of the view, pan in - var xoffset = map.element.outerWidth() - - (pixels[0] + element.outerWidth()) - self.options.padding; - var yoffset = element.outerHeight() - pixels[1] + self.options.padding; - map.pan(xoffset < 0 ? -xoffset : 0, yoffset > 0 ? -yoffset : 0); - }, - _onFeatureunselected: function(evt) { - var self = evt.data.widget; - self.element.hide(); - self.lonLat = null; - }, - _onMove: function(evt) { - var map = this; - var self = evt.data.widget; - - if (!self.lonLat) { - return; - } - - var pixels = map.pixelsFromPosition(self.lonLat[0], self.lonLat[1]); - if (pixels!==null) { - self.element.show(); - self._setPosition(map, pixels); - } - else { - self.element.hide(); - } - }, - _setPosition: function(map, pos) { - this.element.position({ - my: "left bottom", - at: "left top", - of: map.element, - offset: pos[0] + ' ' + pos[1], - collision: 'none' - }); - } -}); -})(jQuery); diff --git a/src/jquery.mapquery.mqZoomButtons.js b/src/jquery.mapquery.mqZoomButtons.js deleted file mode 100644 index d7f5e7d..0000000 --- a/src/jquery.mapquery.mqZoomButtons.js +++ /dev/null @@ -1,91 +0,0 @@ -/* Copyright (c) 2011 by MapQuery Contributors (see AUTHORS for - * full list of contributors). Published under the MIT license. - * See https://github.com/mapquery/mapquery/blob/master/LICENSE for the - * full text of the license. */ - -/** -#jquery.mapquery.mqZoomButtons.js -The file containing the mqZoomButtons Widget - -### *$('selector')*.`mqZoomButtons([options])` -_version added 0.1_ -####**Description**: create a widget to show zoom buttons - - + **options**: - - **map**: the mapquery instance - - **home**: boolean stating if there should be a home button (default false) - ->Returns: widget - - -The mqZoomButtons widget allows us to display a plus and minus zoom button. We -can also add an optional home button in between which will return the map to the -initial extent. - - - $('#zoombuttons').mqZoomButtons({ - map: '#map', - home: true - }); - - */ -(function($) { -$.template('mqZoomButtons', - '
      '+ - '
      '+ - '
      '+ - '{{if home}}
      '+ - '
      {{/if}}'+ - '
      '+ - '
      '+ - '
      '); - -$.widget("mapQuery.mqZoomButtons", { - options: { - // The MapQuery instance - map: undefined, - - //Option to display home button between the + and - button, default: false - home: false - - }, - _create: function() { - var map; - var zoom; - var numzoomlevels; - var self = this; - var element = this.element; - - //get the mapquery object - map = $(this.options.map).data('mapQuery'); - - var startExtent = map.center(); - $.tmpl('mqZoomButtons',{ - home: this.options.home - }).appendTo(element); - - $(".mq-zoombuttons-plus").click(function(){ - //get the latest numzoomlevels and zoom from the map, - //in case something has changed in the mean time - numzoomlevels = map.options.numZoomLevels; - zoom = map.center().zoom; - if(zoom0){map.center({zoom:zoom-1});} - }); - }, - _destroy: function() { - this.element.removeClass(' ui-widget ui-helper-clearfix ' + - 'ui-corner-all') - .empty(); - } -}); -})(jQuery); diff --git a/src/jquery.mapquery.mqZoomSlider.js b/src/jquery.mapquery.mqZoomSlider.js deleted file mode 100644 index ebdce3b..0000000 --- a/src/jquery.mapquery.mqZoomSlider.js +++ /dev/null @@ -1,85 +0,0 @@ -/* Copyright (c) 2011 by MapQuery Contributors (see AUTHORS for - * full list of contributors). Published under the MIT license. - * See https://github.com/mapquery/mapquery/blob/master/LICENSE for the - * full text of the license. */ - - -/** -#jquery.mapquery.mqZoomSlider.js -The file containing the mqZoomSlider Widget - -### *$('selector')*.`mqZoomSlider([options])` -_version added 0.1_ -####**Description**: create a widget to show a zoom slider - - + **options**: - - **map**: the mapquery instance - ->Returns: widget - - -The mqZoomSlider widget allows us to display a vertical zoom slider. - - - $('#zoomslider').mqZoomSlider({ - map: '#map' - }); - - */ -(function($) { -$.template('mqZoomSlider', - '
      '+ - '
      '+ - '
      '); - -$.widget("mapQuery.mqZoomSlider", { - options: { - // The MapQuery instance - map: undefined - - }, - _create: function() { - var map; - var zoom; - var numzoomlevels; - var self = this; - var element = this.element; - - //get the mapquery object - map = $(this.options.map).data('mapQuery'); - - $.tmpl('mqZoomSlider').appendTo(element); - - numzoomlevels = map.options.numZoomLevels; - $(".mq-zoomslider-slider", element).slider({ - max: numzoomlevels, - min:2, - orientation: 'vertical', - step: 1, - value: numzoomlevels - map.center().zoom, - slide: function(event, ui) { - map.center({zoom:numzoomlevels-ui.value}); - }, - change: function(event, ui) { - map.center({zoom:numzoomlevels-ui.value}); - } - }); - map.bind("zoomend", - {widget:self,map:map,control:element}, - self._onZoomEnd); - - }, - _destroy: function() { - this.element.removeClass(' ui-widget ui-helper-clearfix ' + - 'ui-corner-all') - .empty(); - }, - _zoomEnd: function (element,map) { - var slider = element.find('.mq-zoomslider-slider'); - slider.slider('value',map.options.numZoomLevels-map.center().zoom); - }, - _onZoomEnd: function(evt) { - evt.data.widget._zoomEnd(evt.data.control,evt.data.map); - } -}); -})(jQuery); \ No newline at end of file diff --git a/src/jquery.mapquery.popup.js b/src/jquery.mapquery.popup.js deleted file mode 100644 index 64056c5..0000000 --- a/src/jquery.mapquery.popup.js +++ /dev/null @@ -1,96 +0,0 @@ -/* Copyright (c) 2011 by MapQuery Contributors (see AUTHORS for - * full list of contributors). Published under the MIT license. - * See https://github.com/mapquery/mapquery/blob/master/LICENSE for the - * full text of the license. */ - -/** -#jquery.mapquery.popup.js -A plugin on mapquery.core to add a popup to the map, attached to a layer. - */ - -(function($, MQ) { -$.extend(MQ.Map.prototype, { - // Returns the current screen pixel position of a specific position. - // It returns either an array with x and y or null if it is outside - // of the current viewport -/** -###**map**.`pixelsFromPosition(x, y)` -_version added 0.1_ -####**Description**: get the position in viewport pixels from a coordinate - -**x**: the x-coordinate in map-projection -**y**: the y-ccordinate in map-projection - ->Returns: [x,y] in viewport pixels - - -The `.pixelsFromPosition()` function allows us to get the position of a point -on the map in pixels on the screen. Useful for putting a DOM element at a point -in the map. If the coordinate is outside the current view, it will return null; - - - var pos = map.pixelsFromPosition(5,52) //get the pixel-position of Amsterdam - - */ - pixelsFromPosition: function(x, y) { - var pos; - var lonLat = new OpenLayers.LonLat(x, y); - var visible = this.olMap.getExtent().containsLonLat(lonLat); - if (visible) { - pos = this.olMap.getViewPortPxFromLonLat(lonLat); - return [Math.round(pos.x), Math.round(pos.y)]; - } - return null; - }, -/** -###**map**.`pan(dx, dy)` -_version added 0.1_ -####**Description**: pan the map smoothly by a certain amount of pixels - -**dx**: the x-coordinate in pixels -**dy**: the y-ccordinate in pixels - ->Returns: nothing - - -The `.pan()` function allows us to move the map by a certain amount of pixels. - - - map.pan(100,200) //pan the map 100 pixels right and 200 up - - */ - // Pans the map smoothly by a certain amount of pixels - pan: function(dx, dy) { - this.olMap.pan(dx, dy); - } -}); -$.extend(MQ.Layer.prototype, { -/** -###**layer**.`zindex()` -_version added 0.1_ -####**Description**: get the z-index of the current layer - - ->Returns: z-index (integer) - - -The `.zIndex()` function allows us to get the z-index of the current layer. - - - var z= layer.zIndex() - - */ - zIndex: function() { - return this.olLayer.getZIndex(); - } -}); -$.extend(MQ, { - // Returns the position (lon/lat) of a feature as an array - //TODO: write docs - getFeaturePosition: function(feature) { - var lonLat = feature.olFeature.geometry.getCentroid().getBounds() - .getCenterLonLat(); - return [lonLat.lon, lonLat.lat]; - } -}); -})(jQuery, $.MapQuery); diff --git a/tests/index.html b/tests/index.html deleted file mode 100644 index 9551a34..0000000 --- a/tests/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - MapQuery Tests - - - - - - - -

      MapQuery Tests

      - -

      Unit Tests

      - - - diff --git a/tests/jquery.simulate.js b/tests/jquery.simulate.js deleted file mode 100644 index 6c23fdc..0000000 --- a/tests/jquery.simulate.js +++ /dev/null @@ -1,150 +0,0 @@ -/* - * jquery.simulate - simulate browser mouse and keyboard events - * - * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - */ - -;(function($) { - -$.fn.extend({ - simulate: function(type, options) { - return this.each(function() { - var opt = $.extend({}, $.simulate.defaults, options || {}); - new $.simulate(this, type, opt); - }); - } -}); - -$.simulate = function(el, type, options) { - this.target = el; - this.options = options; - - if (/^drag$/.test(type)) { - this[type].apply(this, [this.target, options]); - } else { - this.simulateEvent(el, type, options); - } -} - -$.extend($.simulate.prototype, { - simulateEvent: function(el, type, options) { - var evt = this.createEvent(type, options); - this.dispatchEvent(el, type, evt, options); - return evt; - }, - createEvent: function(type, options) { - if (/^mouse(over|out|down|up|move)|(dbl)?click$/.test(type)) { - return this.mouseEvent(type, options); - } else if (/^key(up|down|press)$/.test(type)) { - return this.keyboardEvent(type, options); - } - }, - mouseEvent: function(type, options) { - var evt; - var e = $.extend({ - bubbles: true, cancelable: (type != "mousemove"), view: window, detail: 0, - screenX: 0, screenY: 0, clientX: 0, clientY: 0, - ctrlKey: false, altKey: false, shiftKey: false, metaKey: false, - button: 0, relatedTarget: undefined - }, options); - - var relatedTarget = $(e.relatedTarget)[0]; - - if ($.isFunction(document.createEvent)) { - evt = document.createEvent("MouseEvents"); - evt.initMouseEvent(type, e.bubbles, e.cancelable, e.view, e.detail, - e.screenX, e.screenY, e.clientX, e.clientY, - e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, - e.button, e.relatedTarget || document.body.parentNode); - } else if (document.createEventObject) { - evt = document.createEventObject(); - $.extend(evt, e); - evt.button = { 0:1, 1:4, 2:2 }[evt.button] || evt.button; - } - return evt; - }, - keyboardEvent: function(type, options) { - var evt; - - var e = $.extend({ bubbles: true, cancelable: true, view: window, - ctrlKey: false, altKey: false, shiftKey: false, metaKey: false, - keyCode: 0, charCode: 0 - }, options); - - if ($.isFunction(document.createEvent)) { - try { - evt = document.createEvent("KeyEvents"); - evt.initKeyEvent(type, e.bubbles, e.cancelable, e.view, - e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, - e.keyCode, e.charCode); - } catch(err) { - evt = document.createEvent("Events"); - evt.initEvent(type, e.bubbles, e.cancelable); - $.extend(evt, { view: e.view, - ctrlKey: e.ctrlKey, altKey: e.altKey, shiftKey: e.shiftKey, metaKey: e.metaKey, - keyCode: e.keyCode, charCode: e.charCode - }); - } - } else if (document.createEventObject) { - evt = document.createEventObject(); - $.extend(evt, e); - } - if ($.browser.msie || $.browser.opera) { - evt.keyCode = (e.charCode > 0) ? e.charCode : e.keyCode; - evt.charCode = undefined; - } - return evt; - }, - - dispatchEvent: function(el, type, evt) { - if (el.dispatchEvent) { - el.dispatchEvent(evt); - } else if (el.fireEvent) { - el.fireEvent('on' + type, evt); - } - return evt; - }, - - drag: function(el) { - var self = this, center = this.findCenter(this.target), - options = this.options, x = Math.floor(center.x), y = Math.floor(center.y), - dx = options.dx || 0, dy = options.dy || 0, target = this.target; - var coord = { clientX: x, clientY: y }; - this.simulateEvent(target, "mousedown", coord); - coord = { clientX: x + 1, clientY: y + 1 }; - this.simulateEvent(document, "mousemove", coord); - coord = { clientX: x + dx, clientY: y + dy }; - this.simulateEvent(document, "mousemove", coord); - this.simulateEvent(document, "mousemove", coord); - this.simulateEvent(target, "mouseup", coord); - }, - findCenter: function(el) { - var el = $(this.target), o = el.offset(); - return { - x: o.left + el.outerWidth() / 2, - y: o.top + el.outerHeight() / 2 - }; - } -}); - -$.extend($.simulate, { - defaults: { - speed: 'sync' - }, - VK_TAB: 9, - VK_ENTER: 13, - VK_ESC: 27, - VK_PGUP: 33, - VK_PGDN: 34, - VK_END: 35, - VK_HOME: 36, - VK_LEFT: 37, - VK_UP: 38, - VK_RIGHT: 39, - VK_DOWN: 40 -}); - -})(jQuery); diff --git a/tests/jslint.sh b/tests/jslint.sh deleted file mode 100644 index 44a1cc9..0000000 --- a/tests/jslint.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -cd `dirname $0`/.. -export MAPQUERY_HOME=`pwd` - -JSLINTBIN=$MAPQUERY_HOME/tests/jslint/jslint4java-1.3.3.jar - -echo -e "" -echo -e "### JSLint ###" -JS_FILES=$( find $MAPQUERY_HOME/src -type f -name \*.js ) - -echo -e "Running jslint for the following files:" -for file in $JS_FILES; do - echo $file -done - -FILES=$( echo ${JS_FILES} | tr '\n' ' ' ) - -java -jar ${JSLINTBIN} ${FILES} -EXIT_STATUS=$? -echo -e "exit status: " ${EXIT_STATUS} - -exit ${EXIT_STATUS} \ No newline at end of file diff --git a/tests/jslint/config.js b/tests/jslint/config.js deleted file mode 100644 index e140ba5..0000000 --- a/tests/jslint/config.js +++ /dev/null @@ -1,49 +0,0 @@ -/* - * This is the default options file for nodelint - * - * Changes released into the Public Domain by tav - * Options support added by Corey Hart - * - */ - -// set your options here - -var options = { - adsafe : false, // if ADsafe should be enforced - bitwise : false, // if bitwise operators should not be allowed - browser : false, // if the standard browser globals should be predefined - cap : false, // if upper case HTML should be allowed - css : false, // if CSS workarounds should be tolerated - debug : false, // if debugger statements should be allowed - devel : false, // if logging should be allowed (console, alert, etc.) - eqeqeq : false, // if === should be required - es5 : true, // if ES5 syntax should be allowed - evil : false, // if eval should be allowed - forin : false, // if for in statements must filter - fragment : false, // if HTML fragments should be allowed - immed : false, // if immediate invocations must be wrapped in parens - laxbreak : false, // if line breaks should not be checked - newcap : true, // if constructor names must be capitalized - nomen : false, // if names should be checked - on : false, // if HTML event handlers should be allowed - onevar : false, // if only one var statement per function should be allowed - passfail : true, // if the scan should stop on first error - plusplus : false, // if increment/decrement should not be allowed - regexp : false, // if the . should not be allowed in regexp literals - rhino : false, // if the Rhino environment globals should be predefined - undef : false, // if variables should be declared before used - safe : false, // if use of some browser features should be restricted - windows : false, // if MS Windows-specigic globals should be predefined - strict : false, // require the "use strict"; pragma - sub : false, // if all forms of subscript notation are tolerated - white : false, // if strict whitespace rules apply - widget : false, // if the Yahoo Widgets globals should be predefined - indent : 4, // set the expected indentation level - - // the following are defined by nodejs itself - //predef : [], - - // customise the error reporting -- the following colours the text red - error_prefix: "\u001b[1m", - error_suffix: ":\u001b[0m " - }; diff --git a/tests/jslint/js-14.jar b/tests/jslint/js-14.jar deleted file mode 100644 index 0bc0199..0000000 Binary files a/tests/jslint/js-14.jar and /dev/null differ diff --git a/tests/jslint/jslint.js b/tests/jslint/jslint.js deleted file mode 100644 index 82cee61..0000000 --- a/tests/jslint/jslint.js +++ /dev/null @@ -1,536 +0,0 @@ -// (C)2002 Douglas Crockford -// www.JSLint.com -// Rhino Edition -"use strict";var JSLINT=(function(){var adsafe_id,adsafe_may,adsafe_went,anonname,approved,atrule={media:true,'font-face':true,page:true},bang={'<':true,'<=':true,'==':true,'===':true,'!==':true,'!=':true,'>':true,'>=':true,'+':true,'-':true,'*':true,'/':true,'%':true},banned={'arguments':true,callee:true,caller:true,constructor:true,'eval':true,prototype:true,stack:true,unwatch:true,valueOf:true,watch:true},boolOptions={adsafe:true,bitwise:true,browser:true,cap:true,css:true,debug:true,devel:true,eqeqeq:true,es5:true,evil:true,forin:true,fragment:true,immed:true,laxbreak:true,newcap:true,nomen:true,on:true,onevar:true,passfail:true,plusplus:true,regexp:true,rhino:true,undef:true,safe:true,windows:true,strict:true,sub:true,white:true,widget:true},browser={addEventListener:false,blur:false,clearInterval:false,clearTimeout:false,close:false,closed:false,defaultStatus:false,document:false,event:false,focus:false,frames:false,getComputedStyle:false,history:false,Image:false,length:false,location:false,moveBy:false,moveTo:false,name:false,navigator:false,onbeforeunload:true,onblur:true,onerror:true,onfocus:true,onload:true,onresize:true,onunload:true,open:false,opener:false,Option:false,parent:false,print:false,removeEventListener:false,resizeBy:false,resizeTo:false,screen:false,scroll:false,scrollBy:false,scrollTo:false,setInterval:false,setTimeout:false,status:false,top:false,XMLHttpRequest:false},cssAttributeData,cssAny,cssColorData={"aliceblue":true,"antiquewhite":true,"aqua":true,"aquamarine":true,"azure":true,"beige":true,"bisque":true,"black":true,"blanchedalmond":true,"blue":true,"blueviolet":true,"brown":true,"burlywood":true,"cadetblue":true,"chartreuse":true,"chocolate":true,"coral":true,"cornflowerblue":true,"cornsilk":true,"crimson":true,"cyan":true,"darkblue":true,"darkcyan":true,"darkgoldenrod":true,"darkgray":true,"darkgreen":true,"darkkhaki":true,"darkmagenta":true,"darkolivegreen":true,"darkorange":true,"darkorchid":true,"darkred":true,"darksalmon":true,"darkseagreen":true,"darkslateblue":true,"darkslategray":true,"darkturquoise":true,"darkviolet":true,"deeppink":true,"deepskyblue":true,"dimgray":true,"dodgerblue":true,"firebrick":true,"floralwhite":true,"forestgreen":true,"fuchsia":true,"gainsboro":true,"ghostwhite":true,"gold":true,"goldenrod":true,"gray":true,"green":true,"greenyellow":true,"honeydew":true,"hotpink":true,"indianred":true,"indigo":true,"ivory":true,"khaki":true,"lavender":true,"lavenderblush":true,"lawngreen":true,"lemonchiffon":true,"lightblue":true,"lightcoral":true,"lightcyan":true,"lightgoldenrodyellow":true,"lightgreen":true,"lightpink":true,"lightsalmon":true,"lightseagreen":true,"lightskyblue":true,"lightslategray":true,"lightsteelblue":true,"lightyellow":true,"lime":true,"limegreen":true,"linen":true,"magenta":true,"maroon":true,"mediumaquamarine":true,"mediumblue":true,"mediumorchid":true,"mediumpurple":true,"mediumseagreen":true,"mediumslateblue":true,"mediumspringgreen":true,"mediumturquoise":true,"mediumvioletred":true,"midnightblue":true,"mintcream":true,"mistyrose":true,"moccasin":true,"navajowhite":true,"navy":true,"oldlace":true,"olive":true,"olivedrab":true,"orange":true,"orangered":true,"orchid":true,"palegoldenrod":true,"palegreen":true,"paleturquoise":true,"palevioletred":true,"papayawhip":true,"peachpuff":true,"peru":true,"pink":true,"plum":true,"powderblue":true,"purple":true,"red":true,"rosybrown":true,"royalblue":true,"saddlebrown":true,"salmon":true,"sandybrown":true,"seagreen":true,"seashell":true,"sienna":true,"silver":true,"skyblue":true,"slateblue":true,"slategray":true,"snow":true,"springgreen":true,"steelblue":true,"tan":true,"teal":true,"thistle":true,"tomato":true,"turquoise":true,"violet":true,"wheat":true,"white":true,"whitesmoke":true,"yellow":true,"yellowgreen":true},cssBorderStyle,cssBreak,cssLengthData={'%':true,'cm':true,'em':true,'ex':true,'in':true,'mm':true,'pc':true,'pt':true,'px':true},cssOverflow,devel={alert:false,confirm:false,console:false,Debug:false,opera:false,prompt:false},escapes={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','/':'\\/','\\':'\\\\'},funct,functionicity=['closure','exception','global','label','outer','unused','var'],functions,global,htmltag={a:{},abbr:{},acronym:{},address:{},applet:{},area:{empty:true,parent:' map '},article:{},aside:{},audio:{},b:{},base:{empty:true,parent:' head '},bdo:{},big:{},blockquote:{},body:{parent:' html noframes '},br:{empty:true},button:{},canvas:{parent:' body p div th td '},caption:{parent:' table '},center:{},cite:{},code:{},col:{empty:true,parent:' table colgroup '},colgroup:{parent:' table '},command:{parent:' menu '},datalist:{},dd:{parent:' dl '},del:{},details:{},dialog:{},dfn:{},dir:{},div:{},dl:{},dt:{parent:' dl '},em:{},embed:{},fieldset:{},figure:{},font:{},footer:{},form:{},frame:{empty:true,parent:' frameset '},frameset:{parent:' html frameset '},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{parent:' html '},header:{},hgroup:{},html:{parent:'*'},hr:{empty:true},i:{},iframe:{},img:{empty:true},input:{empty:true},ins:{},kbd:{},keygen:{},label:{},legend:{parent:' details fieldset figure '},li:{parent:' dir menu ol ul '},link:{empty:true,parent:' head '},map:{},mark:{},menu:{},meta:{empty:true,parent:' head noframes noscript '},meter:{},nav:{},noframes:{parent:' html body '},noscript:{parent:' body head noframes '},object:{},ol:{},optgroup:{parent:' select '},option:{parent:' optgroup select '},output:{},p:{},param:{empty:true,parent:' applet object '},pre:{},progress:{},q:{},rp:{},rt:{},ruby:{},samp:{},script:{empty:true,parent:' body div frame head iframe p pre span '},section:{},select:{},small:{},span:{},source:{},strong:{},style:{parent:' head ',empty:true},sub:{},sup:{},table:{},tbody:{parent:' table '},td:{parent:' tr '},textarea:{},tfoot:{parent:' table '},th:{parent:' tr '},thead:{parent:' table '},time:{},title:{parent:' head '},tr:{parent:' table tbody thead tfoot '},tt:{},u:{},ul:{},'var':{},video:{}},ids,implied,inblock,indent,jsonmode,lines,lookahead,member,membersOnly,nexttoken,noreach,option,predefined,prereg,prevtoken,rhino={defineClass:false,deserialize:false,gc:false,help:false,load:false,loadClass:false,print:false,quit:false,readFile:false,readUrl:false,runCommand:false,seal:false,serialize:false,spawn:false,sync:false,toint32:false,version:false},scope,windows={ActiveXObject:false,CScript:false,Debug:false,Enumerator:false,System:false,VBArray:false,WScript:false},src,stack,standard={Array:false,Boolean:false,Date:false,decodeURI:false,decodeURIComponent:false,encodeURI:false,encodeURIComponent:false,Error:false,'eval':false,EvalError:false,Function:false,hasOwnProperty:false,isFinite:false,isNaN:false,JSON:false,Math:false,Number:false,Object:false,parseInt:false,parseFloat:false,RangeError:false,ReferenceError:false,RegExp:false,String:false,SyntaxError:false,TypeError:false,URIError:false},standard_member={E:true,LN2:true,LN10:true,LOG2E:true,LOG10E:true,PI:true,SQRT1_2:true,SQRT2:true,MAX_VALUE:true,MIN_VALUE:true,NEGATIVE_INFINITY:true,POSITIVE_INFINITY:true},strict_mode,syntax={},tab,token,urls,warnings,widget={alert:true,animator:true,appleScript:true,beep:true,bytesToUIString:true,Canvas:true,chooseColor:true,chooseFile:true,chooseFolder:true,closeWidget:true,COM:true,convertPathToHFS:true,convertPathToPlatform:true,CustomAnimation:true,escape:true,FadeAnimation:true,filesystem:true,Flash:true,focusWidget:true,form:true,FormField:true,Frame:true,HotKey:true,Image:true,include:true,isApplicationRunning:true,iTunes:true,konfabulatorVersion:true,log:true,md5:true,MenuItem:true,MoveAnimation:true,openURL:true,play:true,Point:true,popupMenu:true,preferenceGroups:true,preferences:true,print:true,prompt:true,random:true,Rectangle:true,reloadWidget:true,ResizeAnimation:true,resolvePath:true,resumeUpdates:true,RotateAnimation:true,runCommand:true,runCommandInBg:true,saveAs:true,savePreferences:true,screen:true,ScrollBar:true,showWidgetPreferences:true,sleep:true,speak:true,Style:true,suppressUpdates:true,system:true,tellWidget:true,Text:true,TextArea:true,Timer:true,unescape:true,updateNow:true,URL:true,Web:true,widget:true,Window:true,XMLDOM:true,XMLHttpRequest:true,yahooCheckLogin:true,yahooLogin:true,yahooLogout:true},xmode,xquote,ax=/@cc|<\/?|script|\]*s\]|<\s*!|</i,cx=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,tx=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jslint|members?|global)?|=|\/)?|\*[\/=]?|\+[+=]?|-[\-=]?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,hx=/^\s*(['"=>\/&#]|<(?:\/|\!(?:--)?)?|[a-zA-Z][a-zA-Z0-9_\-]*|[0-9]+|--)/,nx=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,nxg=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,ox=/[>&]|<[\/!]?|--/,lx=/\*\/|\/\*/,ix=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,jx=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,ux=/&|\+|\u00AD|\.\.|\/\*|%[^;]|base64|url|expression|data|mailto/i,sx=/^\s*([{:#%.=,>+\[\]@()"';]|\*=?|\$=|\|=|\^=|~=|[a-zA-Z_][a-zA-Z0-9_\-]*|[0-9]+|<\/|\/\*)/,ssx=/^\s*([@#!"'};:\-%.=,+\[\]()*_]|[a-zA-Z][a-zA-Z0-9._\-]*|\/\*?|\d+(?:\.\d+)?|<\/)/,qx=/[^a-zA-Z0-9+\-_\/ ]/,dx=/[\[\]\/\\"'*<>.&:(){}+=#]/,rx={outer:hx,html:hx,style:sx,styleproperty:ssx};function F(){} -if(typeof Object.create!=='function'){Object.create=function(o){F.prototype=o;return new F();};} -function is_own(object,name){return Object.prototype.hasOwnProperty.call(object,name);} -function combine(t,o){var n;for(n in o){if(is_own(o,n)){t[n]=o[n];}}} -String.prototype.entityify=function(){return this.replace(/&/g,'&').replace(//g,'>');};String.prototype.isAlpha=function(){return(this>='a'&&this<='z\uffff')||(this>='A'&&this<='Z\uffff');};String.prototype.isDigit=function(){return(this>='0'&&this<='9');};String.prototype.supplant=function(o){return this.replace(/\{([^{}]*)\}/g,function(a,b){var r=o[b];return typeof r==='string'||typeof r==='number'?r:a;});};String.prototype.name=function(){if(ix.test(this)){return this;} -if(nx.test(this)){return'"'+this.replace(nxg,function(a){var c=escapes[a];if(c){return c;} -return'\\u'+('0000'+a.charCodeAt().toString(16)).slice(-4);})+'"';} -return'"'+this+'"';};function assume(){if(!option.safe){if(option.rhino){combine(predefined,rhino);} -if(option.devel){combine(predefined,devel);} -if(option.browser){combine(predefined,browser);} -if(option.windows){combine(predefined,windows);} -if(option.widget){combine(predefined,widget);}}} -function quit(m,l,ch){throw{name:'JSLintError',line:l,character:ch,message:m+" ("+Math.floor((l/lines.length)*100)+"% scanned)."};} -function warning(m,t,a,b,c,d){var ch,l,w;t=t||nexttoken;if(t.id==='(end)'){t=token;} -l=t.line||0;ch=t.from||0;w={id:'(error)',raw:m,evidence:lines[l-1]||'',line:l,character:ch,a:a,b:b,c:c,d:d};w.reason=m.supplant(w);JSLINT.errors.push(w);if(option.passfail){quit('Stopping. ',l,ch);} -warnings+=1;if(warnings>=option.maxerr){quit("Too many errors.",l,ch);} -return w;} -function warningAt(m,l,ch,a,b,c,d){return warning(m,{line:l,from:ch},a,b,c,d);} -function error(m,t,a,b,c,d){var w=warning(m,t,a,b,c,d);quit("Stopping, unable to continue.",w.line,w.character);} -function errorAt(m,l,ch,a,b,c,d){return error(m,{line:l,from:ch},a,b,c,d);} -var lex=(function lex(){var character,from,line,s;function nextLine(){var at;if(line>=lines.length){return false;} -character=1;s=lines[line];line+=1;at=s.search(/ \t/);if(at>=0){warningAt("Mixed spaces and tabs.",line,at+1);} -s=s.replace(/\t/g,tab);at=s.search(cx);if(at>=0){warningAt("Unsafe character.",line,at);} -if(option.maxlen&&option.maxlen=0)||i==='return');} -return t;} -return{init:function(source){if(typeof source==='string'){lines=source.replace(/\r\n/g,'\n').replace(/\r/g,'\n').split('\n');}else{lines=source;} -line=0;nextLine();from=1;},range:function(begin,end){var c,value='';from=character;if(s.charAt(0)!==begin){errorAt("Expected '{a}' and instead saw '{b}'.",line,character,begin,s.charAt(0));} -for(;;){s=s.slice(1);character+=1;c=s.charAt(0);switch(c){case'':errorAt("Missing '{a}'.",line,character,c);break;case end:s=s.slice(1);character+=1;return it('(range)',value);case xquote:case'\\':warningAt("Unexpected '{a}'.",line,character,c);} -value+=c;}},token:function(){var b,c,captures,d,depth,high,i,l,low,q,t;function match(x){var r=x.exec(s),r1;if(r){l=r[0].length;r1=r[1];c=r1.charAt(0);s=s.substr(l);from=character+l-r1.length;character+=l;return r1;}} -function string(x){var c,j,r='';if(jsonmode&&x!=='"'){warningAt("Strings must use doublequote.",line,character);} -if(xquote===x||(xmode==='scriptstring'&&!xquote)){return it('(punctuator)',x);} -function esc(n){var i=parseInt(s.substr(j+1,n),16);j+=n;if(i>=32&&i<=126&&i!==34&&i!==92&&i!==39){warningAt("Unnecessary escapement.",line,character);} -character+=n;c=String.fromCharCode(i);} -j=0;for(;;){while(j>=s.length){j=0;if(xmode!=='html'||!nextLine()){errorAt("Unclosed string.",line,from);}} -c=s.charAt(j);if(c===x){character+=1;s=s.substr(j+1);return it('(string)',r,x);} -if(c<' '){if(c==='\n'||c==='\r'){break;} -warningAt("Control character in string: {a}.",line,character+j,s.slice(0,j));}else if(c===xquote){warningAt("Bad HTML string",line,character+j);}else if(c==='<'){if(option.safe&&xmode==='html'){warningAt("ADsafe string violation.",line,character+j);}else if(s.charAt(j+1)==='/'&&(xmode||option.safe)){warningAt("Expected '<\\/' and instead saw '0){character+=1;s=s.slice(i);break;}else{if(!nextLine()){return it('(end)','');}}} -t=match(rx[xmode]||tx);if(!t){t='';c='';while(s&&s<'!'){s=s.substr(1);} -if(s){if(xmode==='html'){return it('(error)',s.charAt(0));}else{errorAt("Unexpected '{a}'.",line,character,s.substr(0,1));}}}else{if(c.isAlpha()||c==='_'||c==='$'){return it('(identifier)',t);} -if(c.isDigit()){if(xmode!=='style'&&!isFinite(Number(t))){warningAt("Bad number '{a}'.",line,character,t);} -if(xmode!=='style'&&xmode!=='styleproperty'&&s.substr(0,1).isAlpha()){warningAt("Missing space after '{a}'.",line,character,t);} -if(c==='0'){d=t.substr(1,1);if(d.isDigit()){if(token.id!=='.'&&xmode!=='styleproperty'){warningAt("Don't use extra leading zeros '{a}'.",line,character,t);}}else if(jsonmode&&(d==='x'||d==='X')){warningAt("Avoid 0x-. '{a}'.",line,character,t);}} -if(t.substr(t.length-1)==='.'){warningAt("A trailing decimal point can be confused with a dot '{a}'.",line,character,t);} -return it('(number)',t);} -switch(t){case'"':case"'":return string(t);case'//':if(src||(xmode&&xmode!=='script')){warningAt("Unexpected comment.",line,character);}else if(xmode==='script'&&/<\s*\//i.test(s)){warningAt("Unexpected <\/ in comment.",line,character);}else if((option.safe||xmode==='script')&&ax.test(s)){warningAt("Dangerous comment.",line,character);} -s='';token.comment=true;break;case'/*':if(src||(xmode&&xmode!=='script'&&xmode!=='style'&&xmode!=='styleproperty')){warningAt("Unexpected comment.",line,character);} -if(option.safe&&ax.test(s)){warningAt("ADsafe comment violation.",line,character);} -for(;;){i=s.search(lx);if(i>=0){break;} -if(!nextLine()){errorAt("Unclosed comment.",line,character);}else{if(option.safe&&ax.test(s)){warningAt("ADsafe comment violation.",line,character);}}} -character+=i+2;if(s.substr(i,1)==='/'){errorAt("Nested comment.",line,character);} -s=s.substr(i+2);token.comment=true;break;case'/*members':case'/*member':case'/*jslint':case'/*global':case'*/':return{value:t,type:'special',line:line,character:character,from:from};case'':break;case'/':if(token.id==='/='){errorAt("A regular expression literal can be confused with '/='.",line,from);} -if(prereg){depth=0;captures=0;l=0;for(;;){b=true;c=s.charAt(l);l+=1;switch(c){case'':errorAt("Unclosed regular expression.",line,from);return;case'/':if(depth>0){warningAt("Unescaped '{a}'.",line,from+l,'/');} -c=s.substr(0,l-1);q={g:true,i:true,m:true};while(q[s.charAt(l)]===true){q[s.charAt(l)]=false;l+=1;} -character+=l;s=s.substr(l);q=s.charAt(0);if(q==='/'||q==='*'){errorAt("Confusing regular expression.",line,from);} -return it('(regexp)',c);case'\\':c=s.charAt(l);if(c<' '){warningAt("Unexpected control character in regular expression.",line,from+l);}else if(c==='<'){warningAt("Unexpected escaped character '{a}' in regular expression.",line,from+l,c);} -l+=1;break;case'(':depth+=1;b=false;if(s.charAt(l)==='?'){l+=1;switch(s.charAt(l)){case':':case'=':case'!':l+=1;break;default:warningAt("Expected '{a}' and instead saw '{b}'.",line,from+l,':',s.charAt(l));}}else{captures+=1;} -break;case'|':b=false;break;case')':if(depth===0){warningAt("Unescaped '{a}'.",line,from+l,')');}else{depth-=1;} -break;case' ':q=1;while(s.charAt(l)===' '){l+=1;q+=1;} -if(q>1){warningAt("Spaces are hard to count. Use {{a}}.",line,from+l,q);} -break;case'[':c=s.charAt(l);if(c==='^'){l+=1;if(option.regexp){warningAt("Insecure '{a}'.",line,from+l,c);}} -q=false;if(c===']'){warningAt("Empty class.",line,from+l-1);q=true;} -klass:do{c=s.charAt(l);l+=1;switch(c){case'[':case'^':warningAt("Unescaped '{a}'.",line,from+l,c);q=true;break;case'-':if(q){q=false;}else{warningAt("Unescaped '{a}'.",line,from+l,'-');q=true;} -break;case']':if(!q){warningAt("Unescaped '{a}'.",line,from+l-1,'-');} -break klass;case'\\':c=s.charAt(l);if(c<' '){warningAt("Unexpected control character in regular expression.",line,from+l);}else if(c==='<'){warningAt("Unexpected escaped character '{a}' in regular expression.",line,from+l,c);} -l+=1;q=true;break;case'/':warningAt("Unescaped '{a}'.",line,from+l-1,'/');q=true;break;case'<':if(xmode==='script'){c=s.charAt(l);if(c==='!'||c==='/'){warningAt("HTML confusion in regular expression '<{a}'.",line,from+l,c);}} -q=true;break;default:q=true;}}while(c);break;case'.':if(option.regexp){warningAt("Insecure '{a}'.",line,from+l,c);} -break;case']':case'?':case'{':case'}':case'+':case'*':warningAt("Unescaped '{a}'.",line,from+l,c);break;case'<':if(xmode==='script'){c=s.charAt(l);if(c==='!'||c==='/'){warningAt("HTML confusion in regular expression '<{a}'.",line,from+l,c);}}} -if(b){switch(s.charAt(l)){case'?':case'+':case'*':l+=1;if(s.charAt(l)==='?'){l+=1;} -break;case'{':l+=1;c=s.charAt(l);if(c<'0'||c>'9'){warningAt("Expected a number and instead saw '{a}'.",line,from+l,c);} -l+=1;low=+c;for(;;){c=s.charAt(l);if(c<'0'||c>'9'){break;} -l+=1;low=+c+(low*10);} -high=low;if(c===','){l+=1;high=Infinity;c=s.charAt(l);if(c>='0'&&c<='9'){l+=1;high=+c;for(;;){c=s.charAt(l);if(c<'0'||c>'9'){break;} -l+=1;high=+c+(high*10);}}} -if(s.charAt(l)!=='}'){warningAt("Expected '{a}' and instead saw '{b}'.",line,from+l,'}',c);}else{l+=1;} -if(s.charAt(l)==='?'){l+=1;} -if(low>high){warningAt("'{a}' should not be greater than '{b}'.",line,from+l,low,high);}}}} -c=s.substr(0,l-1);character+=l;s=s.substr(l);return it('(regexp)',c);} -return it('(punctuator)',t);case'.",line,character);} -character+=3;s=s.slice(i+3);break;case'#':if(xmode==='html'||xmode==='styleproperty'){for(;;){c=s.charAt(0);if((c<'0'||c>'9')&&(c<'a'||c>'f')&&(c<'A'||c>'F')){break;} -character+=1;s=s.substr(1);t+=c;} -if(t.length!==4&&t.length!==7){warningAt("Bad hex color '{a}'.",line,from+l,t);} -return it('(color)',t);} -return it('(punctuator)',t);default:if(xmode==='outer'&&c==='&'){character+=1;s=s.substr(1);for(;;){c=s.charAt(0);character+=1;s=s.substr(1);if(c===';'){break;} -if(!((c>='0'&&c<='9')||(c>='a'&&c<='z')||c==='#')){errorAt("Bad entity",line,from+l,character);}} -break;} -return it('(punctuator)',t);}}}}};}());function addlabel(t,type){if(option.safe&&funct['(global)']&&typeof predefined[t]!=='boolean'){warning('ADsafe global: '+t+'.',token);}else if(t==='hasOwnProperty'){warning("'hasOwnProperty' is a really bad name.");} -if(is_own(funct,t)&&!funct['(global)']){warning(funct[t]===true?"'{a}' was used before it was defined.":"'{a}' is already defined.",nexttoken,t);} -funct[t]=type;if(funct['(global)']){global[t]=funct;if(is_own(implied,t)){warning("'{a}' was used before it was defined.",nexttoken,t);delete implied[t];}}else{scope[t]=funct;}} -function doOption(){var b,obj,filter,o=nexttoken.value,t,v;switch(o){case'*/':error("Unbegun comment.");break;case'/*members':case'/*member':o='/*members';if(!membersOnly){membersOnly={};} -obj=membersOnly;break;case'/*jslint':if(option.safe){warning("ADsafe restriction.");} -obj=option;filter=boolOptions;break;case'/*global':if(option.safe){warning("ADsafe restriction.");} -obj=predefined;break;default:} -t=lex.token();loop:for(;;){for(;;){if(t.type==='special'&&t.value==='*/'){break loop;} -if(t.id!=='(endline)'&&t.id!==','){break;} -t=lex.token();} -if(t.type!=='(string)'&&t.type!=='(identifier)'&&o!=='/*members'){error("Bad option.",t);} -v=lex.token();if(v.id===':'){v=lex.token();if(obj===membersOnly){error("Expected '{a}' and instead saw '{b}'.",t,'*/',':');} -if(t.value==='indent'&&o==='/*jslint'){b=+v.value;if(typeof b!=='number'||!isFinite(b)||b<=0||Math.floor(b)!==b){error("Expected a small integer and instead saw '{a}'.",v,v.value);} -obj.white=true;obj.indent=b;}else if(t.value==='maxerr'&&o==='/*jslint'){b=+v.value;if(typeof b!=='number'||!isFinite(b)||b<=0||Math.floor(b)!==b){error("Expected a small integer and instead saw '{a}'.",v,v.value);} -obj.maxerr=b;}else if(t.value==='maxlen'&&o==='/*jslint'){b=+v.value;if(typeof b!=='number'||!isFinite(b)||b<=0||Math.floor(b)!==b){error("Expected a small integer and instead saw '{a}'.",v,v.value);} -obj.maxlen=b;}else if(v.value==='true'){obj[t.value]=true;}else if(v.value==='false'){obj[t.value]=false;}else{error("Bad option value.",v);} -t=lex.token();}else{if(o==='/*jslint'){error("Missing option value.",t);} -obj[t.value]=false;t=v;}} -if(filter){assume();}} -function peek(p){var i=p||0,j=0,t;while(j<=i){t=lookahead[j];if(!t){t=lookahead[j]=lex.token();} -j+=1;} -return t;} -function advance(id,t){switch(token.id){case'(number)':if(nexttoken.id==='.'){warning("A dot following a number can be confused with a decimal point.",token);} -break;case'-':if(nexttoken.id==='-'||nexttoken.id==='--'){warning("Confusing minusses.");} -break;case'+':if(nexttoken.id==='+'||nexttoken.id==='++'){warning("Confusing plusses.");} -break;} -if(token.type==='(string)'||token.identifier){anonname=token.value;} -if(id&&nexttoken.id!==id){if(t){if(nexttoken.id==='(end)'){warning("Unmatched '{a}'.",t,t.id);}else{warning("Expected '{a}' to match '{b}' from line {c} and instead saw '{d}'.",nexttoken,id,t.id,t.line,nexttoken.value);}}else if(nexttoken.type!=='(identifier)'||nexttoken.value!==id){warning("Expected '{a}' and instead saw '{b}'.",nexttoken,id,nexttoken.value);}} -prevtoken=token;token=nexttoken;for(;;){nexttoken=lookahead.shift()||lex.token();if(nexttoken.id==='(end)'||nexttoken.id==='(error)'){return;} -if(nexttoken.type==='special'){doOption();}else{if(nexttoken.id!=='(endline)'){break;}}}} -function parse(rbp,initial){var left;if(nexttoken.id==='(end)'){error("Unexpected early end of program.",token);} -advance();if(option.safe&&typeof predefined[token.value]==='boolean'&&(nexttoken.id!=='('&&nexttoken.id!=='.')){warning('ADsafe violation.',token);} -if(initial){anonname='anonymous';funct['(verb)']=token.value;} -if(initial===true&&token.fud){left=token.fud();}else{if(token.nud){left=token.nud();}else{if(nexttoken.type==='(number)'&&token.id==='.'){warning("A leading decimal point can be confused with a dot: '.{a}'.",token,nexttoken.value);advance();return token;}else{error("Expected an identifier and instead saw '{a}'.",token,token.id);}} -while(rbp='a'&&c<='z')||(c>='A'&&c<='Z')){x.identifier=x.reserved=true;} -return x;} -function prefix(s,f){var x=symbol(s,150);reserveName(x);x.nud=(typeof f==='function')?f:function(){this.right=parse(150);this.arity='unary';if(this.id==='++'||this.id==='--'){if(option.plusplus){warning("Unexpected use of '{a}'.",this,this.id);}else if((!this.right.identifier||this.right.reserved)&&this.right.id!=='.'&&this.right.id!=='['){warning("Bad operand.",this);}} -return this;};return x;} -function type(s,f){var x=delim(s);x.type=s;x.nud=f;return x;} -function reserve(s,f){var x=type(s,f);x.identifier=x.reserved=true;return x;} -function reservevar(s,v){return reserve(s,function(){if(this.id==='this'||this.id==='arguments'||this.id==='eval'){if(strict_mode&&funct['(global)']){warning("Strict violation.",this);}else if(option.safe){warning("ADsafe violation.",this);}} -return this;});} -function infix(s,f,p,w){var x=symbol(s,p);reserveName(x);x.led=function(left){if(!w){nobreaknonadjacent(prevtoken,token);nonadjacent(token,nexttoken);} -if(typeof f==='function'){return f(left,this);}else{this.left=left;this.right=parse(p);return this;}};return x;} -function relation(s,f){var x=symbol(s,100);x.led=function(left){nobreaknonadjacent(prevtoken,token);nonadjacent(token,nexttoken);var right=parse(100);if((left&&left.id==='NaN')||(right&&right.id==='NaN')){warning("Use the isNaN function to compare with NaN.",this);}else if(f){f.apply(this,[left,right]);} -if(left.id==='!'){warning("Confusing use of '{a}'.",left,'!');} -if(right.id==='!'){warning("Confusing use of '{a}'.",left,'!');} -this.left=left;this.right=right;return this;};return x;} -function isPoorRelation(node){return node&&((node.type==='(number)'&&+node.value===0)||(node.type==='(string)'&&node.value===' ')||node.type==='true'||node.type==='false'||node.type==='undefined'||node.type==='null');} -function assignop(s,f){symbol(s,20).exps=true;return infix(s,function(left,that){var l;that.left=left;if(predefined[left.value]===false&&scope[left.value]['(global)']===true){warning('Read only.',left);} -if(option.safe){l=left;do{if(typeof predefined[l.value]==='boolean'){warning('ADsafe violation.',l);} -l=l.left;}while(l);} -if(left){if(left.id==='.'||left.id==='['){if(!left.left||left.left.value==='arguments'){warning('Bad assignment.',that);} -that.right=parse(19);return that;}else if(left.identifier&&!left.reserved){if(funct[left.value]==='exception'){warning("Do not assign to the exception parameter.",left);} -that.right=parse(19);return that;} -if(left===syntax['function']){warning("Expected an identifier in an assignment and instead saw a function invocation.",token);}} -error("Bad assignment.",that);},20);} -function bitwise(s,f,p){var x=symbol(s,p);reserveName(x);x.led=(typeof f==='function')?f:function(left){if(option.bitwise){warning("Unexpected use of '{a}'.",this,this.id);} -this.left=left;this.right=parse(p);return this;};return x;} -function bitwiseassignop(s){symbol(s,20).exps=true;return infix(s,function(left,that){if(option.bitwise){warning("Unexpected use of '{a}'.",that,that.id);} -nonadjacent(prevtoken,token);nonadjacent(token,nexttoken);if(left){if(left.id==='.'||left.id==='['||(left.identifier&&!left.reserved)){parse(19);return that;} -if(left===syntax['function']){warning("Expected an identifier in an assignment, and instead saw a function invocation.",token);} -return that;} -error("Bad assignment.",that);},20);} -function suffix(s,f){var x=symbol(s,150);x.led=function(left){if(option.plusplus){warning("Unexpected use of '{a}'.",this,this.id);}else if((!left.identifier||left.reserved)&&left.id!=='.'&&left.id!=='['){warning("Bad operand.",this);} -this.left=left;return this;};return x;} -function optionalidentifier(){if(nexttoken.identifier){advance();if(option.safe&&banned[token.value]){warning("ADsafe violation: '{a}'.",token,token.value);}else if(token.reserved&&!option.es5){warning("Expected an identifier and instead saw '{a}' (a reserved word).",token,token.id);} -return token.value;}} -function identifier(){var i=optionalidentifier();if(i){return i;} -if(token.id==='function'&&nexttoken.id==='('){warning("Missing name in function statement.");}else{error("Expected an identifier and instead saw '{a}'.",nexttoken,nexttoken.value);}} -function reachable(s){var i=0,t;if(nexttoken.id!==';'||noreach){return;} -for(;;){t=peek(i);if(t.reach){return;} -if(t.id!=='(endline)'){if(t.id==='function'){warning("Inner functions should be listed at the top of the outer function.",t);break;} -warning("Unreachable '{a}' after '{b}'.",t,t.value,s);break;} -i+=1;}} -function statement(noindent){var i=indent,r,s=scope,t=nexttoken;if(t.id===';'){warning("Unnecessary semicolon.",t);advance(';');return;} -if(t.identifier&&!t.reserved&&peek().id===':'){advance();advance(':');scope=Object.create(s);addlabel(t.value,'label');if(!nexttoken.labelled){warning("Label '{a}' on {b} statement.",nexttoken,t.value,nexttoken.value);} -if(jx.test(t.value+':')){warning("Label '{a}' looks like a javascript url.",t,t.value);} -nexttoken.label=t.value;t=nexttoken;} -if(!noindent){indentation();} -r=parse(0,true);if(!t.block){if(!r||!r.exps){warning("Expected an assignment or function call and instead saw an expression.",token);}else if(r.id==='('&&r.left.id==='new'){warning("Do not use 'new' for side effects.");} -if(nexttoken.id!==';'){warningAt("Missing semicolon.",token.line,token.from+token.value.length);}else{adjacent(token,nexttoken);advance(';');nonadjacent(token,nexttoken);}} -indent=i;scope=s;return r;} -function use_strict(){if(nexttoken.value==='use strict'){advance();advance(';');strict_mode=true;return true;}else{return false;}} -function statements(begin){var a=[],f,p;if(begin&&!use_strict()&&option.strict){warning('Missing "use strict" statement.',nexttoken);} -if(option.adsafe){switch(begin){case'script':if(!adsafe_may){if(nexttoken.value!=='ADSAFE'||peek(0).id!=='.'||(peek(1).value!=='id'&&peek(1).value!=='go')){error('ADsafe violation: Missing ADSAFE.id or ADSAFE.go.',nexttoken);}} -if(nexttoken.value==='ADSAFE'&&peek(0).id==='.'&&peek(1).value==='id'){if(adsafe_may){error('ADsafe violation.',nexttoken);} -advance('ADSAFE');advance('.');advance('id');advance('(');if(nexttoken.value!==adsafe_id){error('ADsafe violation: id does not match.',nexttoken);} -advance('(string)');advance(')');advance(';');adsafe_may=true;} -break;case'lib':if(nexttoken.value==='ADSAFE'){advance('ADSAFE');advance('.');advance('lib');advance('(');advance('(string)');comma();f=parse(0);if(f.id!=='function'){error('The second argument to lib must be a function.',f);} -p=f.funct['(params)'];p=p&&p.join(', ');if(p&&p!=='lib'){error("Expected '{a}' and instead saw '{b}'.",f,'(lib)','('+p+')');} -advance(')');advance(';');return a;}else{error("ADsafe lib violation.");}}} -while(!nexttoken.reach&&nexttoken.id!=='(end)'){if(nexttoken.id===';'){warning("Unnecessary semicolon.");advance(';');}else{a.push(statement());}} -return a;} -function block(f){var a,b=inblock,old_indent=indent,s=scope,t;inblock=f;scope=Object.create(scope);nonadjacent(token,nexttoken);t=nexttoken;if(nexttoken.id==='{'){advance('{');if(nexttoken.id!=='}'||token.line!==nexttoken.line){indent+=option.indent;while(!f&&nexttoken.from>indent){indent+=option.indent;} -if(!f){use_strict();} -a=statements();indent-=option.indent;indentation();} -advance('}',t);indent=old_indent;}else{warning("Expected '{a}' and instead saw '{b}'.",nexttoken,'{',nexttoken.value);noreach=true;a=[statement()];noreach=false;} -funct['(verb)']=null;scope=s;inblock=b;return a;} -function idValue(){return this;} -function countMember(m){if(membersOnly&&typeof membersOnly[m]!=='boolean'){warning("Unexpected /*member '{a}'.",token,m);} -if(typeof member[m]==='number'){member[m]+=1;}else{member[m]=1;}} -function note_implied(token){var name=token.value,line=token.line,a=implied[name];if(typeof a==='function'){a=false;} -if(!a){a=[line];implied[name]=a;}else if(a[a.length-1]!==line){a.push(line);}} -function cssName(){if(nexttoken.identifier){advance();return true;}} -function cssNumber(){if(nexttoken.id==='-'){advance('-');adjacent();nolinebreak();} -if(nexttoken.type==='(number)'){advance('(number)');return true;}} -function cssString(){if(nexttoken.type==='(string)'){advance();return true;}} -function cssColor(){var i,number,value;if(nexttoken.identifier){value=nexttoken.value;if(value==='rgb'||value==='rgba'){advance();advance('(');for(i=0;i<3;i+=1){if(i){advance(',');} -number=nexttoken.value;if(nexttoken.type!=='(number)'||number<0){warning("Expected a positive number and instead saw '{a}'",nexttoken,number);advance();}else{advance();if(nexttoken.id==='%'){advance('%');if(number>100){warning("Expected a percentage and instead saw '{a}'",token,number);}}else{if(number>255){warning("Expected a small number and instead saw '{a}'",token,number);}}}} -if(value==='rgba'){advance(',');number=+nexttoken.value;if(nexttoken.type!=='(number)'||number<0||number>1){warning("Expected a number between 0 and 1 and instead saw '{a}'",nexttoken,number);} -advance();if(nexttoken.id==='%'){warning("Unexpected '%'.");advance('%');}} -advance(')');return true;}else if(cssColorData[nexttoken.value]===true){advance();return true;}}else if(nexttoken.type==='(color)'){advance();return true;} -return false;} -function cssLength(){if(nexttoken.id==='-'){advance('-');adjacent();nolinebreak();} -if(nexttoken.type==='(number)'){advance();if(nexttoken.type!=='(string)'&&cssLengthData[nexttoken.value]===true){adjacent();advance();}else if(+token.value!==0){warning("Expected a linear unit and instead saw '{a}'.",nexttoken,nexttoken.value);} -return true;} -return false;} -function cssLineHeight(){if(nexttoken.id==='-'){advance('-');adjacent();} -if(nexttoken.type==='(number)'){advance();if(nexttoken.type!=='(string)'&&cssLengthData[nexttoken.value]===true){adjacent();advance();} -return true;} -return false;} -function cssWidth(){if(nexttoken.identifier){switch(nexttoken.value){case'thin':case'medium':case'thick':advance();return true;}}else{return cssLength();}} -function cssMargin(){if(nexttoken.identifier){if(nexttoken.value==='auto'){advance();return true;}}else{return cssLength();}} -function cssAttr(){if(nexttoken.identifier&&nexttoken.value==='attr'){advance();advance('(');if(!nexttoken.identifier){warning("Expected a name and instead saw '{a}'.",nexttoken,nexttoken.value);} -advance();advance(')');return true;} -return false;} -function cssCommaList(){while(nexttoken.id!==';'){if(!cssName()&&!cssString()){warning("Expected a name and instead saw '{a}'.",nexttoken,nexttoken.value);} -if(nexttoken.id!==','){return true;} -comma();}} -function cssCounter(){if(nexttoken.identifier&&nexttoken.value==='counter'){advance();advance('(');if(!nexttoken.identifier){} -advance();if(nexttoken.id===','){comma();if(nexttoken.type!=='(string)'){warning("Expected a string and instead saw '{a}'.",nexttoken,nexttoken.value);} -advance();} -advance(')');return true;} -if(nexttoken.identifier&&nexttoken.value==='counters'){advance();advance('(');if(!nexttoken.identifier){warning("Expected a name and instead saw '{a}'.",nexttoken,nexttoken.value);} -advance();if(nexttoken.id===','){comma();if(nexttoken.type!=='(string)'){warning("Expected a string and instead saw '{a}'.",nexttoken,nexttoken.value);} -advance();} -if(nexttoken.id===','){comma();if(nexttoken.type!=='(string)'){warning("Expected a string and instead saw '{a}'.",nexttoken,nexttoken.value);} -advance();} -advance(')');return true;} -return false;} -function cssShape(){var i;if(nexttoken.identifier&&nexttoken.value==='rect'){advance();advance('(');for(i=0;i<4;i+=1){if(!cssLength()){warning("Expected a number and instead saw '{a}'.",nexttoken,nexttoken.value);break;}} -advance(')');return true;} -return false;} -function cssUrl(){var c,url;if(nexttoken.identifier&&nexttoken.value==='url'){nexttoken=lex.range('(',')');url=nexttoken.value;c=url.charAt(0);if(c==='"'||c==='\''){if(url.slice(-1)!==c){warning("Bad url string.");}else{url=url.slice(1,-1);if(url.indexOf(c)>=0){warning("Bad url string.");}}} -if(!url){warning("Missing url.");} -advance();if(option.safe&&ux.test(url)){error("ADsafe URL violation.");} -urls.push(url);return true;} -return false;} -cssAny=[cssUrl,function(){for(;;){if(nexttoken.identifier){switch(nexttoken.value.toLowerCase()){case'url':cssUrl();break;case'expression':warning("Unexpected expression '{a}'.",nexttoken,nexttoken.value);advance();break;default:advance();}}else{if(nexttoken.id===';'||nexttoken.id==='!'||nexttoken.id==='(end)'||nexttoken.id==='}'){return true;} -advance();}}}];cssBorderStyle=['none','hidden','dotted','dashed','solid','double','ridge','inset','outset'];cssBreak=['auto','always','avoid','left','right'];cssOverflow=['auto','hidden','scroll','visible'];cssAttributeData={background:[true,'background-attachment','background-color','background-image','background-position','background-repeat'],'background-attachment':['scroll','fixed'],'background-color':['transparent',cssColor],'background-image':['none',cssUrl],'background-position':[2,[cssLength,'top','bottom','left','right','center']],'background-repeat':['repeat','repeat-x','repeat-y','no-repeat'],'border':[true,'border-color','border-style','border-width'],'border-bottom':[true,'border-bottom-color','border-bottom-style','border-bottom-width'],'border-bottom-color':cssColor,'border-bottom-style':cssBorderStyle,'border-bottom-width':cssWidth,'border-collapse':['collapse','separate'],'border-color':['transparent',4,cssColor],'border-left':[true,'border-left-color','border-left-style','border-left-width'],'border-left-color':cssColor,'border-left-style':cssBorderStyle,'border-left-width':cssWidth,'border-right':[true,'border-right-color','border-right-style','border-right-width'],'border-right-color':cssColor,'border-right-style':cssBorderStyle,'border-right-width':cssWidth,'border-spacing':[2,cssLength],'border-style':[4,cssBorderStyle],'border-top':[true,'border-top-color','border-top-style','border-top-width'],'border-top-color':cssColor,'border-top-style':cssBorderStyle,'border-top-width':cssWidth,'border-width':[4,cssWidth],bottom:[cssLength,'auto'],'caption-side':['bottom','left','right','top'],clear:['both','left','none','right'],clip:[cssShape,'auto'],color:cssColor,content:['open-quote','close-quote','no-open-quote','no-close-quote',cssString,cssUrl,cssCounter,cssAttr],'counter-increment':[cssName,'none'],'counter-reset':[cssName,'none'],cursor:[cssUrl,'auto','crosshair','default','e-resize','help','move','n-resize','ne-resize','nw-resize','pointer','s-resize','se-resize','sw-resize','w-resize','text','wait'],direction:['ltr','rtl'],display:['block','compact','inline','inline-block','inline-table','list-item','marker','none','run-in','table','table-caption','table-cell','table-column','table-column-group','table-footer-group','table-header-group','table-row','table-row-group'],'empty-cells':['show','hide'],'float':['left','none','right'],font:['caption','icon','menu','message-box','small-caption','status-bar',true,'font-size','font-style','font-weight','font-family'],'font-family':cssCommaList,'font-size':['xx-small','x-small','small','medium','large','x-large','xx-large','larger','smaller',cssLength],'font-size-adjust':['none',cssNumber],'font-stretch':['normal','wider','narrower','ultra-condensed','extra-condensed','condensed','semi-condensed','semi-expanded','expanded','extra-expanded'],'font-style':['normal','italic','oblique'],'font-variant':['normal','small-caps'],'font-weight':['normal','bold','bolder','lighter',cssNumber],height:[cssLength,'auto'],left:[cssLength,'auto'],'letter-spacing':['normal',cssLength],'line-height':['normal',cssLineHeight],'list-style':[true,'list-style-image','list-style-position','list-style-type'],'list-style-image':['none',cssUrl],'list-style-position':['inside','outside'],'list-style-type':['circle','disc','square','decimal','decimal-leading-zero','lower-roman','upper-roman','lower-greek','lower-alpha','lower-latin','upper-alpha','upper-latin','hebrew','katakana','hiragana-iroha','katakana-oroha','none'],margin:[4,cssMargin],'margin-bottom':cssMargin,'margin-left':cssMargin,'margin-right':cssMargin,'margin-top':cssMargin,'marker-offset':[cssLength,'auto'],'max-height':[cssLength,'none'],'max-width':[cssLength,'none'],'min-height':cssLength,'min-width':cssLength,opacity:cssNumber,outline:[true,'outline-color','outline-style','outline-width'],'outline-color':['invert',cssColor],'outline-style':['dashed','dotted','double','groove','inset','none','outset','ridge','solid'],'outline-width':cssWidth,overflow:cssOverflow,'overflow-x':cssOverflow,'overflow-y':cssOverflow,padding:[4,cssLength],'padding-bottom':cssLength,'padding-left':cssLength,'padding-right':cssLength,'padding-top':cssLength,'page-break-after':cssBreak,'page-break-before':cssBreak,position:['absolute','fixed','relative','static'],quotes:[8,cssString],right:[cssLength,'auto'],'table-layout':['auto','fixed'],'text-align':['center','justify','left','right'],'text-decoration':['none','underline','overline','line-through','blink'],'text-indent':cssLength,'text-shadow':['none',4,[cssColor,cssLength]],'text-transform':['capitalize','uppercase','lowercase','none'],top:[cssLength,'auto'],'unicode-bidi':['normal','embed','bidi-override'],'vertical-align':['baseline','bottom','sub','super','top','text-top','middle','text-bottom',cssLength],visibility:['visible','hidden','collapse'],'white-space':['normal','nowrap','pre','pre-line','pre-wrap','inherit'],width:[cssLength,'auto'],'word-spacing':['normal',cssLength],'word-wrap':['break-word','normal'],'z-index':['auto',cssNumber]};function styleAttribute(){var v;while(nexttoken.id==='*'||nexttoken.id==='#'||nexttoken.value==='_'){if(!option.css){warning("Unexpected '{a}'.",nexttoken,nexttoken.value);} -advance();} -if(nexttoken.id==='-'){if(!option.css){warning("Unexpected '{a}'.",nexttoken,nexttoken.value);} -advance('-');if(!nexttoken.identifier){warning("Expected a non-standard style attribute and instead saw '{a}'.",nexttoken,nexttoken.value);} -advance();return cssAny;}else{if(!nexttoken.identifier){warning("Excepted a style attribute, and instead saw '{a}'.",nexttoken,nexttoken.value);}else{if(is_own(cssAttributeData,nexttoken.value)){v=cssAttributeData[nexttoken.value];}else{v=cssAny;if(!option.css){warning("Unrecognized style attribute '{a}'.",nexttoken,nexttoken.value);}}} -advance();return v;}} -function styleValue(v){var i=0,n,once,match,round,start=0,vi;switch(typeof v){case'function':return v();case'string':if(nexttoken.identifier&&nexttoken.value===v){advance();return true;} -return false;} -for(;;){if(i>=v.length){return false;} -vi=v[i];i+=1;if(vi===true){break;}else if(typeof vi==='number'){n=vi;vi=v[i];i+=1;}else{n=1;} -match=false;while(n>0){if(styleValue(vi)){match=true;n-=1;}else{break;}} -if(match){return true;}} -start=i;once=[];for(;;){round=false;for(i=start;i':case'+':advance();styleSelector();break;case':':advance(':');switch(nexttoken.value){case'active':case'after':case'before':case'checked':case'disabled':case'empty':case'enabled':case'first-child':case'first-letter':case'first-line':case'first-of-type':case'focus':case'hover':case'last-of-type':case'link':case'only-of-type':case'root':case'target':case'visited':advance();break;case'lang':advance();advance('(');if(!nexttoken.identifier){warning("Expected a lang code, and instead saw :{a}.",nexttoken,nexttoken.value);} -advance(')');break;case'nth-child':case'nth-last-child':case'nth-last-of-type':case'nth-of-type':advance();advance('(');styleChild();advance(')');break;case'not':advance();advance('(');if(nexttoken.id===':'&&peek(0).value==='not'){warning("Nested not.");} -styleSelector();advance(')');break;default:warning("Expected a pseudo, and instead saw :{a}.",nexttoken,nexttoken.value);} -break;case'#':advance('#');if(!nexttoken.identifier){warning("Expected an id, and instead saw #{a}.",nexttoken,nexttoken.value);} -advance();break;case'*':advance('*');break;case'.':advance('.');if(!nexttoken.identifier){warning("Expected a class, and instead saw #.{a}.",nexttoken,nexttoken.value);} -advance();break;case'[':advance('[');if(!nexttoken.identifier){warning("Expected an attribute, and instead saw [{a}].",nexttoken,nexttoken.value);} -advance();if(nexttoken.id==='='||nexttoken.value==='~='||nexttoken.value==='$='||nexttoken.value==='|='||nexttoken.id==='*='||nexttoken.id==='^='){advance();if(nexttoken.type!=='(string)'){warning("Expected a string, and instead saw {a}.",nexttoken,nexttoken.value);} -advance();} -advance(']');break;default:error("Expected a CSS selector, and instead saw {a}.",nexttoken,nexttoken.value);}}} -function stylePattern(){var name;if(nexttoken.id==='{'){warning("Expected a style pattern, and instead saw '{a}'.",nexttoken,nexttoken.id);}else if(nexttoken.id==='@'){advance('@');name=nexttoken.value;if(nexttoken.identifier&&atrule[name]===true){advance();return name;} -warning("Expected an at-rule, and instead saw @{a}.",nexttoken,name);} -for(;;){styleSelector();if(nexttoken.id===' fragments and .js files.",token);} -if(option.fragment){if(n!=='div'){error("ADsafe violation: Wrap the widget in a div.",token);}}else{error("Use the fragment option.",token);}} -option.browser=true;assume();} -function doAttribute(n,a,v){var u,x;if(a==='id'){u=typeof v==='string'?v.toUpperCase():'';if(ids[u]===true){warning("Duplicate id='{a}'.",nexttoken,v);} -if(!/^[A-Za-z][A-Za-z0-9._:\-]*$/.test(v)){warning("Bad id: '{a}'.",nexttoken,v);}else if(option.adsafe){if(adsafe_id){if(v.slice(0,adsafe_id.length)!==adsafe_id){warning("ADsafe violation: An id must have a '{a}' prefix",nexttoken,adsafe_id);}else if(!/^[A-Z]+_[A-Z]+$/.test(v)){warning("ADSAFE violation: bad id.");}}else{adsafe_id=v;if(!/^[A-Z]+_$/.test(v)){warning("ADSAFE violation: bad id.");}}} -x=v.search(dx);if(x>=0){warning("Unexpected character '{a}' in {b}.",token,v.charAt(x),a);} -ids[u]=true;}else if(a==='class'||a==='type'||a==='name'){x=v.search(qx);if(x>=0){warning("Unexpected character '{a}' in {b}.",token,v.charAt(x),a);} -ids[u]=true;}else if(a==='href'||a==='background'||a==='content'||a==='data'||a.indexOf('src')>=0||a.indexOf('url')>=0){if(option.safe&&ux.test(v)){error("ADsafe URL violation.");} -urls.push(v);}else if(a==='for'){if(option.adsafe){if(adsafe_id){if(v.slice(0,adsafe_id.length)!==adsafe_id){warning("ADsafe violation: An id must have a '{a}' prefix",nexttoken,adsafe_id);}else if(!/^[A-Z]+_[A-Z]+$/.test(v)){warning("ADSAFE violation: bad id.");}}else{warning("ADSAFE violation: bad id.");}}}else if(a==='name'){if(option.adsafe&&v.indexOf('_')>=0){warning("ADsafe name violation.");}}} -function doTag(n,a){var i,t=htmltag[n],x;src=false;if(!t){error("Unrecognized tag '<{a}>'.",nexttoken,n===n.toLowerCase()?n:n+' (capitalization error)');} -if(stack.length>0){if(n==='html'){error("Too many tags.",token);} -x=t.parent;if(x){if(x.indexOf(' '+stack[stack.length-1].name+' ')<0){error("A '<{a}>' must be within '<{b}>'.",token,n,x);}}else if(!option.adsafe&&!option.fragment){i=stack.length;do{if(i<=0){error("A '<{a}>' must be within '<{b}>'.",token,n,'body');} -i-=1;}while(stack[i].name!=='body');}} -switch(n){case'div':if(option.adsafe&&stack.length===1&&!adsafe_id){warning("ADSAFE violation: missing ID_.");} -break;case'script':xmode='script';advance('>');indent=nexttoken.from;if(a.lang){warning("lang is deprecated.",token);} -if(option.adsafe&&stack.length!==1){warning("ADsafe script placement violation.",token);} -if(a.src){if(option.adsafe&&(!adsafe_may||!approved[a.src])){warning("ADsafe unapproved script source.",token);} -if(a.type){warning("type is unnecessary.",token);}}else{if(adsafe_went){error("ADsafe script violation.",token);} -statements('script');} -xmode='html';advance('');styles();xmode='html';advance('';} -function html(){var a,attributes,e,n,q,t,v,w=option.white,wmode;xmode='html';xquote='';stack=null;for(;;){switch(nexttoken.value){case'<':xmode='html';advance('<');attributes={};t=nexttoken;if(!t.identifier){warning("Bad identifier {a}.",t,t.value);} -n=t.value;if(option.cap){n=n.toLowerCase();} -t.name=n;advance();if(!stack){stack=[];doBegin(n);} -v=htmltag[n];if(typeof v!=='object'){error("Unrecognized tag '<{a}>'.",t,n);} -e=v.empty;t.type=n;for(;;){if(nexttoken.id==='/'){advance('/');if(nexttoken.id!=='>'){warning("Expected '{a}' and instead saw '{b}'.",nexttoken,'>',nexttoken.value);} -break;} -if(nexttoken.id&&nexttoken.id.substr(0,1)==='>'){break;} -if(!nexttoken.identifier){if(nexttoken.id==='(end)'||nexttoken.id==='(error)'){error("Missing '>'.",nexttoken);} -warning("Bad identifier.");} -option.white=true;nonadjacent(token,nexttoken);a=nexttoken.value;option.white=w;advance();if(!option.cap&&a!==a.toLowerCase()){warning("Attribute '{a}' not all lower case.",nexttoken,a);} -a=a.toLowerCase();xquote='';if(is_own(attributes,a)){warning("Attribute '{a}' repeated.",nexttoken,a);} -if(a.slice(0,2)==='on'){if(!option.on){warning("Avoid HTML event handlers.");} -xmode='scriptstring';advance('=');q=nexttoken.id;if(q!=='"'&&q!=="'"){error("Missing quote.");} -xquote=q;wmode=option.white;option.white=false;advance(q);statements('on');option.white=wmode;if(nexttoken.id!==q){error("Missing close quote on script attribute.");} -xmode='html';xquote='';advance(q);v=false;}else if(a==='style'){xmode='scriptstring';advance('=');q=nexttoken.id;if(q!=='"'&&q!=="'"){error("Missing quote.");} -xmode='styleproperty';xquote=q;advance(q);substyle();xmode='html';xquote='';advance(q);v=false;}else{if(nexttoken.id==='='){advance('=');v=nexttoken.value;if(!nexttoken.identifier&&nexttoken.id!=='"'&&nexttoken.id!=='\''&&nexttoken.type!=='(string)'&&nexttoken.type!=='(number)'&&nexttoken.type!=='(color)'){warning("Expected an attribute value and instead saw '{a}'.",token,a);} -advance();}else{v=true;}} -attributes[a]=v;doAttribute(n,a,v);} -doTag(n,attributes);if(!e){stack.push(t);} -xmode='outer';advance('>');break;case''){error("Missing '{a}'.",nexttoken,'>');} -xmode='outer';advance('>');break;case''||nexttoken.id==='(end)'){break;} -if(nexttoken.value.indexOf('--')>=0){warning("Unexpected --.");} -if(nexttoken.value.indexOf('<')>=0){warning("Unexpected <.");} -if(nexttoken.value.indexOf('>')>=0){warning("Unexpected >.");}} -xmode='outer';advance('>');break;case'(end)':return;default:if(nexttoken.id==='(end)'){error("Missing '{a}'.",nexttoken,'');}else{advance();}} -if(stack&&stack.length===0&&(option.adsafe||!option.fragment||nexttoken.id==='(end)')){break;}} -if(nexttoken.id!=='(end)'){error("Unexpected material after the end.");}} -type('(number)',idValue);type('(string)',idValue);syntax['(identifier)']={type:'(identifier)',lbp:0,identifier:true,nud:function(){var v=this.value,s=scope[v],f;if(typeof s==='function'){s=undefined;}else if(typeof s==='boolean'){f=funct;funct=functions[0];addlabel(v,'var');s=funct;funct=f;} -if(funct===s){switch(funct[v]){case'unused':funct[v]='var';break;case'label':warning("'{a}' is a statement label.",token,v);break;}}else if(funct['(global)']){if(option.undef&&predefined[v]!=='boolean'){warning("'{a}' is not defined.",token,v);} -note_implied(token);}else{switch(funct[v]){case'closure':case'function':case'var':case'unused':warning("'{a}' used out of scope.",token,v);break;case'label':warning("'{a}' is a statement label.",token,v);break;case'outer':case'global':break;default:if(s===true){funct[v]=true;}else if(s===null){warning("'{a}' is not allowed.",token,v);note_implied(token);}else if(typeof s!=='object'){if(option.undef){warning("'{a}' is not defined.",token,v);}else{funct[v]=true;} -note_implied(token);}else{switch(s[v]){case'function':case'var':case'unused':s[v]='closure';funct[v]=s['(global)']?'global':'outer';break;case'closure':case'parameter':funct[v]=s['(global)']?'global':'outer';break;case'label':warning("'{a}' is a statement label.",token,v);}}}} -return this;},led:function(){error("Expected an operator and instead saw '{a}'.",nexttoken,nexttoken.value);}};type('(regexp)',function(){return this;});delim('(endline)');delim('(begin)');delim('(end)').reach=true;delim('');delim('(error)').reach=true;delim('}').reach=true;delim(')');delim(']');delim('"').reach=true;delim("'").reach=true;delim(';');delim(':').reach=true;delim(',');delim('#');delim('@');reserve('else');reserve('case').reach=true;reserve('catch');reserve('default').reach=true;reserve('finally');reservevar('arguments');reservevar('eval');reservevar('false');reservevar('Infinity');reservevar('NaN');reservevar('null');reservevar('this');reservevar('true');reservevar('undefined');assignop('=','assign',20);assignop('+=','assignadd',20);assignop('-=','assignsub',20);assignop('*=','assignmult',20);assignop('/=','assigndiv',20).nud=function(){error("A regular expression literal can be confused with '/='.");};assignop('%=','assignmod',20);bitwiseassignop('&=','assignbitand',20);bitwiseassignop('|=','assignbitor',20);bitwiseassignop('^=','assignbitxor',20);bitwiseassignop('<<=','assignshiftleft',20);bitwiseassignop('>>=','assignshiftright',20);bitwiseassignop('>>>=','assignshiftrightunsigned',20);infix('?',function(left,that){that.left=left;that.right=parse(10);advance(':');that['else']=parse(10);return that;},30);infix('||','or',40);infix('&&','and',50);bitwise('|','bitor',70);bitwise('^','bitxor',80);bitwise('&','bitand',90);relation('==',function(left,right){if(option.eqeqeq){warning("Expected '{a}' and instead saw '{b}'.",this,'===','==');}else if(isPoorRelation(left)){warning("Use '{a}' to compare with '{b}'.",this,'===',left.value);}else if(isPoorRelation(right)){warning("Use '{a}' to compare with '{b}'.",this,'===',right.value);} -return this;});relation('===');relation('!=',function(left,right){if(option.eqeqeq){warning("Expected '{a}' and instead saw '{b}'.",this,'!==','!=');}else if(isPoorRelation(left)){warning("Use '{a}' to compare with '{b}'.",this,'!==',left.value);}else if(isPoorRelation(right)){warning("Use '{a}' to compare with '{b}'.",this,'!==',right.value);} -return this;});relation('!==');relation('<');relation('>');relation('<=');relation('>=');bitwise('<<','shiftleft',120);bitwise('>>','shiftright',120);bitwise('>>>','shiftrightunsigned',120);infix('in','in',120);infix('instanceof','instanceof',120);infix('+',function(left,that){var right=parse(130);if(left&&right&&left.id==='(string)'&&right.id==='(string)'){left.value+=right.value;left.character=right.character;if(jx.test(left.value)){warning("JavaScript URL.",left);} -return left;} -that.left=left;that.right=right;return that;},130);prefix('+','num');infix('-','sub',130);prefix('-','neg');infix('*','mult',140);infix('/','div',140);infix('%','mod',140);suffix('++','postinc');prefix('++','preinc');syntax['++'].exps=true;suffix('--','postdec');prefix('--','predec');syntax['--'].exps=true;prefix('delete',function(){var p=parse(0);if(!p||(p.id!=='.'&&p.id!=='[')){warning("Expected '{a}' and instead saw '{b}'.",nexttoken,'.',nexttoken.value);} -this.first=p;return this;}).exps=true;prefix('~',function(){if(option.bitwise){warning("Unexpected '{a}'.",this,'~');} -parse(150);return this;});prefix('!',function(){this.right=parse(150);this.arity='unary';if(bang[this.right.id]===true){warning("Confusing use of '{a}'.",this,'!');} -return this;});prefix('typeof','typeof');prefix('new',function(){var c=parse(155),i;if(c&&c.id!=='function'){if(c.identifier){c['new']=true;switch(c.value){case'Object':warning("Use the object literal notation {}.",token);break;case'Array':if(nexttoken.id!=='('){warning("Use the array literal notation [].",token);}else{advance('(');if(nexttoken.id===')'){warning("Use the array literal notation [].",token);}else{i=parse(0);c.dimension=i;if((i.id==='(number)'&&/[.+\-Ee]/.test(i.value))||(i.id==='-'&&!i.right)||i.id==='(string)'||i.id==='['||i.id==='{'||i.id==='true'||i.id==='false'||i.id==='null'||i.id==='undefined'||i.id==='Infinity'){warning("Use the array literal notation [].",token);} -if(nexttoken.id!==')'){error("Use the array literal notation [].",token);}} -advance(')');} -this.first=c;return this;case'Number':case'String':case'Boolean':case'Math':case'JSON':warning("Do not use {a} as a constructor.",token,c.value);break;case'Function':if(!option.evil){warning("The Function constructor is eval.");} -break;case'Date':case'RegExp':break;default:if(c.id!=='function'){i=c.value.substr(0,1);if(option.newcap&&(i<'A'||i>'Z')){warning("A constructor name should start with an uppercase letter.",token);}}}}else{if(c.id!=='.'&&c.id!=='['&&c.id!=='('){warning("Bad constructor.",token);}}}else{warning("Weird construction. Delete 'new'.",this);} -adjacent(token,nexttoken);if(nexttoken.id!=='('){warning("Missing '()' invoking a constructor.");} -this.first=c;return this;});syntax['new'].exps=true;infix('.',function(left,that){adjacent(prevtoken,token);var m=identifier();if(typeof m==='string'){countMember(m);} -that.left=left;that.right=m;if(!option.evil&&left&&left.value==='document'&&(m==='write'||m==='writeln')){warning("document.write can be a form of eval.",left);}else if(option.adsafe){if(left&&left.value==='ADSAFE'){if(m==='id'||m==='lib'){warning("ADsafe violation.",that);}else if(m==='go'){if(xmode!=='script'){warning("ADsafe violation.",that);}else if(adsafe_went||nexttoken.id!=='('||peek(0).id!=='(string)'||peek(0).value!==adsafe_id||peek(1).id!==','){error("ADsafe violation: go.",that);} -adsafe_went=true;adsafe_may=false;}}} -if(!option.evil&&(m==='eval'||m==='execScript')){warning('eval is evil.');}else if(option.safe){for(;;){if(banned[m]===true){warning("ADsafe restricted word '{a}'.",token,m);} -if(typeof predefined[left.value]!=='boolean'||nexttoken.id==='('){break;} -if(standard_member[m]===true){if(nexttoken.id==='.'){warning("ADsafe violation.",that);} -break;} -if(nexttoken.id!=='.'){warning("ADsafe violation.",that);break;} -advance('.');token.left=that;token.right=m;that=token;m=identifier();if(typeof m==='string'){countMember(m);}}} -return that;},160,true);infix('(',function(left,that){adjacent(prevtoken,token);nospace();var n=0,p=[];if(left){if(left.type==='(identifier)'){if(left.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)){if(left.value!=='Number'&&left.value!=='String'&&left.value!=='Boolean'&&left.value!=='Date'){if(left.value==='Math'){warning("Math is not a function.",left);}else if(option.newcap){warning("Missing 'new' prefix when invoking a constructor.",left);}}}}else if(left.id==='.'){if(option.safe&&left.left.value==='Math'&&left.right==='random'){warning("ADsafe violation.",left);}}} -if(nexttoken.id!==')'){for(;;){p[p.length]=parse(10);n+=1;if(nexttoken.id!==','){break;} -comma();}} -advance(')');if(option.immed&&left.id==='function'&&nexttoken.id!==')'){warning("Wrap the entire immediate function invocation in parens.",that);} -nospace(prevtoken,token);if(typeof left==='object'){if(left.value==='parseInt'&&n===1){warning("Missing radix parameter.",left);} -if(!option.evil){if(left.value==='eval'||left.value==='Function'||left.value==='execScript'){warning("eval is evil.",left);}else if(p[0]&&p[0].id==='(string)'&&(left.value==='setTimeout'||left.value==='setInterval')){warning("Implied eval is evil. Pass a function instead of a string.",left);}} -if(!left.identifier&&left.id!=='.'&&left.id!=='['&&left.id!=='('&&left.id!=='&&'&&left.id!=='||'&&left.id!=='?'){warning("Bad invocation.",left);}} -that.left=left;return that;},155,true).exps=true;prefix('(',function(){nospace();var v=parse(0);advance(')',this);nospace(prevtoken,token);if(option.immed&&v.id==='function'){if(nexttoken.id==='('){warning("Move the invocation into the parens that contain the function.",nexttoken);}else{warning("Do not wrap function literals in parens unless they are to be immediately invoked.",this);}} -return v;});infix('[',function(left,that){nospace();var e=parse(0),s;if(e&&e.type==='(string)'){if(option.safe&&banned[e.value]===true){warning("ADsafe restricted word '{a}'.",that,e.value);}else if(!option.evil&&(e.value==='eval'||e.value==='execScript')){warning("eval is evil.",that);}else if(option.safe&&(e.value.charAt(0)==='_'||e.value.charAt(0)==='-')){warning("ADsafe restricted subscript '{a}'.",that,e.value);} -countMember(e.value);if(!option.sub&&ix.test(e.value)){s=syntax[e.value];if(!s||!s.reserved){warning("['{a}'] is better written in dot notation.",e,e.value);}}}else if(!e||e.type!=='(number)'||e.value<0){if(option.safe){warning('ADsafe subscripting.');}} -advance(']',that);nospace(prevtoken,token);that.left=left;that.right=e;return that;},160,true);prefix('[',function(){var b=token.line!==nexttoken.line;this.first=[];if(b){indent+=option.indent;if(nexttoken.from===indent+option.indent){indent+=option.indent;}} -while(nexttoken.id!=='(end)'){while(nexttoken.id===','){warning("Extra comma.");advance(',');} -if(nexttoken.id===']'){break;} -if(b&&token.line!==nexttoken.line){indentation();} -this.first.push(parse(10));if(nexttoken.id===','){comma();if(nexttoken.id===']'&&!option.es5){warning("Extra comma.",token);break;}}else{break;}} -if(b){indent-=option.indent;indentation();} -advance(']',this);return this;},160);function property_name(){var i=optionalidentifier(true);if(!i){if(nexttoken.id==='(string)'){i=nexttoken.value;advance();}else if(nexttoken.id==='(number)'){i=nexttoken.value.toString();advance();}} -return i;} -function functionparams(){var i,t=nexttoken,p=[];advance('(');nospace();if(nexttoken.id===')'){advance(')');nospace(prevtoken,token);return;} -for(;;){i=identifier();p.push(i);addlabel(i,'parameter');if(nexttoken.id===','){comma();}else{advance(')',t);nospace(prevtoken,token);return p;}}} -function doFunction(i){var f,s=scope;scope=Object.create(s);funct={'(name)':i||'"'+anonname+'"','(line)':nexttoken.line,'(context)':funct,'(breakage)':0,'(loopage)':0,'(scope)':scope};f=funct;token.funct=funct;functions.push(funct);if(i){addlabel(i,'function');} -funct['(params)']=functionparams();block(false);scope=s;funct['(last)']=token.line;funct=funct['(context)'];return f;} -(function(x){x.nud=function(){var b,f,i,j,p,seen={},t;b=token.line!==nexttoken.line;if(b){indent+=option.indent;if(nexttoken.from===indent+option.indent){indent+=option.indent;}} -for(;;){if(nexttoken.id==='}'){break;} -if(b){indentation();} -if(nexttoken.value==='get'&&peek().id!==':'){advance('get');if(!option.es5){error("get/set are ES5 features.");} -i=property_name();if(!i){error("Missing property name.");} -t=nexttoken;adjacent(token,nexttoken);f=doFunction(i);if(funct['(loopage)']){warning("Don't make functions within a loop.",t);} -p=f['(params)'];if(p){warning("Unexpected parameter '{a}' in get {b} function.",t,p[0],i);} -adjacent(token,nexttoken);advance(',');indentation();advance('set');j=property_name();if(i!==j){error("Expected {a} and instead saw {b}.",token,i,j);} -t=nexttoken;adjacent(token,nexttoken);f=doFunction(i);p=f['(params)'];if(!p||p.length!==1||p[0]!=='value'){warning("Expected (value) in set {a} function.",t,i);}}else{i=property_name();if(typeof i!=='string'){break;} -advance(':');nonadjacent(token,nexttoken);parse(10);} -if(seen[i]===true){warning("Duplicate member '{a}'.",nexttoken,i);} -seen[i]=true;countMember(i);if(nexttoken.id===','){comma();if(nexttoken.id===','){warning("Extra comma.",token);}else if(nexttoken.id==='}'&&!option.es5){warning("Extra comma.",token);}}else{break;}} -if(b){indent-=option.indent;indentation();} -advance('}',this);return this;};x.fud=function(){error("Expected to see a statement and instead saw a block.",token);};}(delim('{')));function varstatement(prefix){var id,name,value;if(funct['(onevar)']&&option.onevar){warning("Too many var statements.");}else if(!funct['(global)']){funct['(onevar)']=true;} -this.first=[];for(;;){nonadjacent(token,nexttoken);id=identifier();if(funct['(global)']&&predefined[id]===false){warning("Redefinition of '{a}'.",token,id);} -addlabel(id,'unused');if(prefix){break;} -name=token;this.first.push(token);if(nexttoken.id==='='){nonadjacent(token,nexttoken);advance('=');nonadjacent(token,nexttoken);if(nexttoken.id==='undefined'){warning("It is not necessary to initialize '{a}' to 'undefined'.",token,id);} -if(peek(0).id==='='&&nexttoken.identifier){error("Variable {a} was not declared correctly.",nexttoken,nexttoken.value);} -value=parse(0);name.first=value;} -if(nexttoken.id!==','){break;} -comma();} -return this;} -stmt('var',varstatement).exps=true;blockstmt('function',function(){if(inblock){warning("Function statements cannot be placed in blocks. Use a function expression or move the statement to the top of the outer function.",token);} -var i=identifier();adjacent(token,nexttoken);addlabel(i,'unused');doFunction(i);if(nexttoken.id==='('&&nexttoken.line===token.line){error("Function statements are not invocable. Wrap the whole function invocation in parens.");} -return this;});prefix('function',function(){var i=optionalidentifier();if(i){adjacent(token,nexttoken);}else{nonadjacent(token,nexttoken);} -doFunction(i);if(funct['(loopage)']){warning("Don't make functions within a loop.");} -return this;});blockstmt('if',function(){var t=nexttoken;advance('(');nonadjacent(this,t);nospace();parse(20);if(nexttoken.id==='='){warning("Expected a conditional expression and instead saw an assignment.");advance('=');parse(20);} -advance(')',t);nospace(prevtoken,token);block(true);if(nexttoken.id==='else'){nonadjacent(token,nexttoken);advance('else');if(nexttoken.id==='if'||nexttoken.id==='switch'){statement(true);}else{block(true);}} -return this;});blockstmt('try',function(){var b,e,s;if(option.adsafe){warning("ADsafe try violation.",this);} -block(false);if(nexttoken.id==='catch'){advance('catch');nonadjacent(token,nexttoken);advance('(');s=scope;scope=Object.create(s);e=nexttoken.value;if(nexttoken.type!=='(identifier)'){warning("Expected an identifier and instead saw '{a}'.",nexttoken,e);}else{addlabel(e,'exception');} -advance();advance(')');block(false);b=true;scope=s;} -if(nexttoken.id==='finally'){advance('finally');block(false);return;}else if(!b){error("Expected '{a}' and instead saw '{b}'.",nexttoken,'catch',nexttoken.value);} -return this;});blockstmt('while',function(){var t=nexttoken;funct['(breakage)']+=1;funct['(loopage)']+=1;advance('(');nonadjacent(this,t);nospace();parse(20);if(nexttoken.id==='='){warning("Expected a conditional expression and instead saw an assignment.");advance('=');parse(20);} -advance(')',t);nospace(prevtoken,token);block(true);funct['(breakage)']-=1;funct['(loopage)']-=1;return this;}).labelled=true;reserve('with');blockstmt('switch',function(){var t=nexttoken,g=false;funct['(breakage)']+=1;advance('(');nonadjacent(this,t);nospace();this.condition=parse(20);advance(')',t);nospace(prevtoken,token);nonadjacent(token,nexttoken);t=nexttoken;advance('{');nonadjacent(token,nexttoken);indent+=option.indent;this.cases=[];for(;;){switch(nexttoken.id){case'case':switch(funct['(verb)']){case'break':case'case':case'continue':case'return':case'switch':case'throw':break;default:warning("Expected a 'break' statement before 'case'.",token);} -indentation(-option.indent);advance('case');this.cases.push(parse(20));g=true;advance(':');funct['(verb)']='case';break;case'default':switch(funct['(verb)']){case'break':case'continue':case'return':case'throw':break;default:warning("Expected a 'break' statement before 'default'.",token);} -indentation(-option.indent);advance('default');g=true;advance(':');break;case'}':indent-=option.indent;indentation();advance('}',t);if(this.cases.length===1||this.condition.id==='true'||this.condition.id==='false'){warning("This 'switch' should be an 'if'.",this);} -funct['(breakage)']-=1;funct['(verb)']=undefined;return;case'(end)':error("Missing '{a}'.",nexttoken,'}');return;default:if(g){switch(token.id){case',':error("Each value should have its own case label.");return;case':':statements();break;default:error("Missing ':' on a case clause.",token);}}else{error("Expected '{a}' and instead saw '{b}'.",nexttoken,'case',nexttoken.value);}}}}).labelled=true;stmt('debugger',function(){if(!option.debug){warning("All 'debugger' statements should be removed.");} -return this;}).exps=true;(function(){var x=stmt('do',function(){funct['(breakage)']+=1;funct['(loopage)']+=1;this.first=block(true);advance('while');var t=nexttoken;nonadjacent(token,t);advance('(');nospace();parse(20);if(nexttoken.id==='='){warning("Expected a conditional expression and instead saw an assignment.");advance('=');parse(20);} -advance(')',t);nospace(prevtoken,token);funct['(breakage)']-=1;funct['(loopage)']-=1;return this;});x.labelled=true;x.exps=true;}());blockstmt('for',function(){var f=option.forin,s,t=nexttoken;funct['(breakage)']+=1;funct['(loopage)']+=1;advance('(');nonadjacent(this,t);nospace();if(peek(nexttoken.id==='var'?1:0).id==='in'){if(nexttoken.id==='var'){advance('var');varstatement(true);}else{switch(funct[nexttoken.value]){case'unused':funct[nexttoken.value]='var';break;case'var':break;default:warning("Bad for in variable '{a}'.",nexttoken,nexttoken.value);} -advance();} -advance('in');parse(20);advance(')',t);s=block(true);if(!f&&(s.length>1||typeof s[0]!=='object'||s[0].value!=='if')){warning("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this);} -funct['(breakage)']-=1;funct['(loopage)']-=1;return this;}else{if(nexttoken.id!==';'){if(nexttoken.id==='var'){advance('var');varstatement();}else{for(;;){parse(0,'for');if(nexttoken.id!==','){break;} -comma();}}} -nolinebreak(token);advance(';');if(nexttoken.id!==';'){parse(20);if(nexttoken.id==='='){warning("Expected a conditional expression and instead saw an assignment.");advance('=');parse(20);}} -nolinebreak(token);advance(';');if(nexttoken.id===';'){error("Expected '{a}' and instead saw '{b}'.",nexttoken,')',';');} -if(nexttoken.id!==')'){for(;;){parse(0,'for');if(nexttoken.id!==','){break;} -comma();}} -advance(')',t);nospace(prevtoken,token);block(true);funct['(breakage)']-=1;funct['(loopage)']-=1;return this;}}).labelled=true;stmt('break',function(){var v=nexttoken.value;if(funct['(breakage)']===0){warning("Unexpected '{a}'.",nexttoken,this.value);} -nolinebreak(this);if(nexttoken.id!==';'){if(token.line===nexttoken.line){if(funct[v]!=='label'){warning("'{a}' is not a statement label.",nexttoken,v);}else if(scope[v]!==funct){warning("'{a}' is out of scope.",nexttoken,v);} -this.first=nexttoken;advance();}} -reachable('break');return this;}).exps=true;stmt('continue',function(){var v=nexttoken.value;if(funct['(breakage)']===0){warning("Unexpected '{a}'.",nexttoken,this.value);} -nolinebreak(this);if(nexttoken.id!==';'){if(token.line===nexttoken.line){if(funct[v]!=='label'){warning("'{a}' is not a statement label.",nexttoken,v);}else if(scope[v]!==funct){warning("'{a}' is out of scope.",nexttoken,v);} -this.first=nexttoken;advance();}}else if(!funct['(loopage)']){warning("Unexpected '{a}'.",nexttoken,this.value);} -reachable('continue');return this;}).exps=true;stmt('return',function(){nolinebreak(this);if(nexttoken.id==='(regexp)'){warning("Wrap the /regexp/ literal in parens to disambiguate the slash operator.");} -if(nexttoken.id!==';'&&!nexttoken.reach){nonadjacent(token,nexttoken);this.first=parse(20);} -reachable('return');return this;}).exps=true;stmt('throw',function(){nolinebreak(this);nonadjacent(token,nexttoken);this.first=parse(20);reachable('throw');return this;}).exps=true;reserve('void');reserve('class');reserve('const');reserve('enum');reserve('export');reserve('extends');reserve('import');reserve('super');reserve('let');reserve('yield');reserve('implements');reserve('interface');reserve('package');reserve('private');reserve('protected');reserve('public');reserve('static');function jsonValue(){function jsonObject(){var o={},t=nexttoken;advance('{');if(nexttoken.id!=='}'){for(;;){if(nexttoken.id==='(end)'){error("Missing '}' to match '{' from line {a}.",nexttoken,t.line);}else if(nexttoken.id==='}'){warning("Unexpected comma.",token);break;}else if(nexttoken.id===','){error("Unexpected comma.",nexttoken);}else if(nexttoken.id!=='(string)'){warning("Expected a string and instead saw {a}.",nexttoken,nexttoken.value);} -if(o[nexttoken.value]===true){warning("Duplicate key '{a}'.",nexttoken,nexttoken.value);}else if(nexttoken.value==='__proto__'){warning("Stupid key '{a}'.",nexttoken,nexttoken.value);}else{o[nexttoken.value]=true;} -advance();advance(':');jsonValue();if(nexttoken.id!==','){break;} -advance(',');}} -advance('}');} -function jsonArray(){var t=nexttoken;advance('[');if(nexttoken.id!==']'){for(;;){if(nexttoken.id==='(end)'){error("Missing ']' to match '[' from line {a}.",nexttoken,t.line);}else if(nexttoken.id===']'){warning("Unexpected comma.",token);break;}else if(nexttoken.id===','){error("Unexpected comma.",nexttoken);} -jsonValue();if(nexttoken.id!==','){break;} -advance(',');}} -advance(']');} -switch(nexttoken.id){case'{':jsonObject();break;case'[':jsonArray();break;case'true':case'false':case'null':case'(number)':case'(string)':advance();break;case'-':advance('-');if(token.character!==nexttoken.from){warning("Unexpected space after '-'.",token);} -adjacent(token,nexttoken);advance('(number)');break;default:error("Expected a JSON value.",nexttoken);}} -var itself=function(s,o){var a,i;JSLINT.errors=[];predefined=Object.create(standard);if(o){a=o.predef;if(a instanceof Array){for(i=0;i',nexttoken.value);} -statements('lib');}} -advance('(end)');}catch(e){if(e){JSLINT.errors.push({reason:e.message,line:e.line||nexttoken.line,character:e.character||nexttoken.from},null);}} -return JSLINT.errors.length===0;};function is_array(o){return Object.prototype.toString.apply(o)==='[object Array]';} -function to_array(o){var a=[],k;for(k in o){if(is_own(o,k)){a.push(k);}} -return a;} -itself.data=function(){var data={functions:[]},fu,globals,implieds=[],f,i,j,members=[],n,unused=[],v;if(itself.errors.length){data.errors=itself.errors;} -if(jsonmode){data.json=true;} -for(n in implied){if(is_own(implied,n)){implieds.push({name:n,line:implied[n]});}} -if(implieds.length>0){data.implieds=implieds;} -if(urls.length>0){data.urls=urls;} -globals=to_array(scope);if(globals.length>0){data.globals=globals;} -for(i=1;i0){data.unused=unused;} -members=[];for(n in member){if(typeof member[n]==='number'){data.member=member;break;}} -return data;};itself.report=function(option){var data=itself.data();var a=[],c,e,err,f,i,k,l,m='',n,o=[],s;function detail(h,array){var b,i,singularity;if(array){o.push('
      '+h+' ');array=array.sort();for(i=0;i');}} -if(data.errors||data.implieds||data.unused){err=true;o.push('
      Error:');if(data.errors){for(i=0;iProblem'+(isFinite(c.line)?' at line '+ -c.line+' character '+c.character:'')+': '+c.reason.entityify()+'

      '+ -(e&&(e.length>80?e.slice(0,77)+'...':e).entityify())+'

      ');}}} -if(data.implieds){s=[];for(i=0;i'+data.implieds[i].name+' '+ -data.implieds[i].line+'';} -o.push('

      Implied global: '+s.join(', ')+'

      ');} -if(data.unused){s=[];for(i=0;i'+data.unused[i].name+' '+ -data.unused[i].line+' '+ -data.unused[i]['function']+'';} -o.push('

      Unused variable: '+s.join(', ')+'

      ');} -if(data.json){o.push('

      JSON: bad.

      ');} -o.push('
      ');} -if(!option){o.push('
      ');if(data.urls){detail("URLs
      ",data.urls,'
      ');} -if(xmode==='style'){o.push('

      CSS.

      ');}else if(data.json&&!err){o.push('

      JSON: good.

      ');}else if(data.globals){o.push('
      Global '+ -data.globals.sort().join(', ')+'
      ');}else{o.push('
      No new global variables introduced.
      ');} -for(i=0;i
      '+f.line+'-'+ -f.last+' '+(f.name||'')+'('+ -(f.param?f.param.join(', '):'')+')
      ');detail('Unused',f.unused);detail('Closure',f.closure);detail('Variable',f['var']);detail('Exception',f.exception);detail('Outer',f.outer);detail('Global',f.global);detail('Label',f.label);} -if(data.member){a=to_array(data.member);if(a.length){a=a.sort();m='
      /*members ';l=10;for(i=0;i72){o.push(m+'
      ');m=' ';l=1;} -l+=n.length+2;if(data.member[k]===1){n=''+n+'';} -if(i*/
      ');} -o.push('
      ');}} -return o.join('');};itself.jslint=itself;itself.edition='2010-04-06';return itself;}());(function(a){var e,i,input;if(!a[0]){print("Usage: jslint.js file.js");quit(1);} -input=readFile(a[0]);if(!input){print("jslint: Couldn't open file '"+a[0]+"'.");quit(1);} -if(!JSLINT(input,{bitwise:true,eqeqeq:true,immed:true,newcap:true,nomen:true,onevar:true,plusplus:true,regexp:true,rhino:true,undef:true,white:true})){for(i=0;i li:last-child { - border-radius: 0 0 15px 15px; - -moz-border-radius: 0 0 15px 15px; - -webkit-border-bottom-right-radius: 15px; - -webkit-border-bottom-left-radius: 15px; -} - -#qunit-tests .fail { color: #000000; background-color: #EE5757; } -#qunit-tests .fail .test-name, -#qunit-tests .fail .module-name { color: #000000; } - -#qunit-tests .fail .test-actual { color: #EE5757; } -#qunit-tests .fail .test-expected { color: green; } - -#qunit-banner.qunit-fail { background-color: #EE5757; } - - -/** Result */ - -#qunit-testresult { - padding: 0.5em 0.5em 0.5em 2.5em; - - color: #2b81af; - background-color: #D2E0E6; - - border-bottom: 1px solid white; -} - -/** Fixture */ - -#qunit-fixture { - position: absolute; - top: -10000px; - left: -10000px; -} diff --git a/tests/qunit.js b/tests/qunit.js deleted file mode 100644 index e00cca9..0000000 --- a/tests/qunit.js +++ /dev/null @@ -1,1448 +0,0 @@ -/** - * QUnit - A JavaScript Unit Testing Framework - * - * http://docs.jquery.com/QUnit - * - * Copyright (c) 2011 John Resig, Jörn Zaefferer - * Dual licensed under the MIT (MIT-LICENSE.txt) - * or GPL (GPL-LICENSE.txt) licenses. - */ - -(function(window) { - -var defined = { - setTimeout: typeof window.setTimeout !== "undefined", - sessionStorage: (function() { - try { - return !!sessionStorage.getItem; - } catch(e){ - return false; - } - })() -}; - -var testId = 0; - -var Test = function(name, testName, expected, testEnvironmentArg, async, callback) { - this.name = name; - this.testName = testName; - this.expected = expected; - this.testEnvironmentArg = testEnvironmentArg; - this.async = async; - this.callback = callback; - this.assertions = []; -}; -Test.prototype = { - init: function() { - var tests = id("qunit-tests"); - if (tests) { - var b = document.createElement("strong"); - b.innerHTML = "Running " + this.name; - var li = document.createElement("li"); - li.appendChild( b ); - li.className = "running"; - li.id = this.id = "test-output" + testId++; - tests.appendChild( li ); - } - }, - setup: function() { - if (this.module != config.previousModule) { - if ( config.previousModule ) { - QUnit.moduleDone( { - name: config.previousModule, - failed: config.moduleStats.bad, - passed: config.moduleStats.all - config.moduleStats.bad, - total: config.moduleStats.all - } ); - } - config.previousModule = this.module; - config.moduleStats = { all: 0, bad: 0 }; - QUnit.moduleStart( { - name: this.module - } ); - } - - config.current = this; - this.testEnvironment = extend({ - setup: function() {}, - teardown: function() {} - }, this.moduleTestEnvironment); - if (this.testEnvironmentArg) { - extend(this.testEnvironment, this.testEnvironmentArg); - } - - QUnit.testStart( { - name: this.testName - } ); - - // allow utility functions to access the current test environment - // TODO why?? - QUnit.current_testEnvironment = this.testEnvironment; - - try { - if ( !config.pollution ) { - saveGlobal(); - } - - this.testEnvironment.setup.call(this.testEnvironment); - } catch(e) { - QUnit.ok( false, "Setup failed on " + this.testName + ": " + e.message ); - } - }, - run: function() { - if ( this.async ) { - QUnit.stop(); - } - - if ( config.notrycatch ) { - this.callback.call(this.testEnvironment); - return; - } - try { - this.callback.call(this.testEnvironment); - } catch(e) { - fail("Test " + this.testName + " died, exception and test follows", e, this.callback); - QUnit.ok( false, "Died on test #" + (this.assertions.length + 1) + ": " + e.message + " - " + QUnit.jsDump.parse(e) ); - // else next test will carry the responsibility - saveGlobal(); - - // Restart the tests if they're blocking - if ( config.blocking ) { - start(); - } - } - }, - teardown: function() { - try { - this.testEnvironment.teardown.call(this.testEnvironment); - checkPollution(); - } catch(e) { - QUnit.ok( false, "Teardown failed on " + this.testName + ": " + e.message ); - } - }, - finish: function() { - if ( this.expected && this.expected != this.assertions.length ) { - QUnit.ok( false, "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run" ); - } - - var good = 0, bad = 0, - tests = id("qunit-tests"); - - config.stats.all += this.assertions.length; - config.moduleStats.all += this.assertions.length; - - if ( tests ) { - var ol = document.createElement("ol"); - - for ( var i = 0; i < this.assertions.length; i++ ) { - var assertion = this.assertions[i]; - - var li = document.createElement("li"); - li.className = assertion.result ? "pass" : "fail"; - li.innerHTML = assertion.message || (assertion.result ? "okay" : "failed"); - ol.appendChild( li ); - - if ( assertion.result ) { - good++; - } else { - bad++; - config.stats.bad++; - config.moduleStats.bad++; - } - } - - // store result when possible - if ( QUnit.config.reorder && defined.sessionStorage ) { - if (bad) { - sessionStorage.setItem("qunit-" + this.module + "-" + this.testName, bad); - } else { - sessionStorage.removeItem("qunit-" + this.module + "-" + this.testName); - } - } - - if (bad == 0) { - ol.style.display = "none"; - } - - var b = document.createElement("strong"); - b.innerHTML = this.name + " (" + bad + ", " + good + ", " + this.assertions.length + ")"; - - var a = document.createElement("a"); - a.innerHTML = "Rerun"; - a.href = QUnit.url({ filter: getText([b]).replace(/\([^)]+\)$/, "").replace(/(^\s*|\s*$)/g, "") }); - - addEvent(b, "click", function() { - var next = b.nextSibling.nextSibling, - display = next.style.display; - next.style.display = display === "none" ? "block" : "none"; - }); - - addEvent(b, "dblclick", function(e) { - var target = e && e.target ? e.target : window.event.srcElement; - if ( target.nodeName.toLowerCase() == "span" || target.nodeName.toLowerCase() == "b" ) { - target = target.parentNode; - } - if ( window.location && target.nodeName.toLowerCase() === "strong" ) { - window.location = QUnit.url({ filter: getText([target]).replace(/\([^)]+\)$/, "").replace(/(^\s*|\s*$)/g, "") }); - } - }); - - var li = id(this.id); - li.className = bad ? "fail" : "pass"; - li.removeChild( li.firstChild ); - li.appendChild( b ); - li.appendChild( a ); - li.appendChild( ol ); - - } else { - for ( var i = 0; i < this.assertions.length; i++ ) { - if ( !this.assertions[i].result ) { - bad++; - config.stats.bad++; - config.moduleStats.bad++; - } - } - } - - try { - QUnit.reset(); - } catch(e) { - fail("reset() failed, following Test " + this.testName + ", exception and reset fn follows", e, QUnit.reset); - } - - QUnit.testDone( { - name: this.testName, - failed: bad, - passed: this.assertions.length - bad, - total: this.assertions.length - } ); - }, - - queue: function() { - var test = this; - synchronize(function() { - test.init(); - }); - function run() { - // each of these can by async - synchronize(function() { - test.setup(); - }); - synchronize(function() { - test.run(); - }); - synchronize(function() { - test.teardown(); - }); - synchronize(function() { - test.finish(); - }); - } - // defer when previous test run passed, if storage is available - var bad = QUnit.config.reorder && defined.sessionStorage && +sessionStorage.getItem("qunit-" + this.module + "-" + this.testName); - if (bad) { - run(); - } else { - synchronize(run); - }; - } - -}; - -var QUnit = { - - // call on start of module test to prepend name to all tests - module: function(name, testEnvironment) { - config.currentModule = name; - config.currentModuleTestEnviroment = testEnvironment; - }, - - asyncTest: function(testName, expected, callback) { - if ( arguments.length === 2 ) { - callback = expected; - expected = 0; - } - - QUnit.test(testName, expected, callback, true); - }, - - test: function(testName, expected, callback, async) { - var name = '' + testName + '', testEnvironmentArg; - - if ( arguments.length === 2 ) { - callback = expected; - expected = null; - } - // is 2nd argument a testEnvironment? - if ( expected && typeof expected === 'object') { - testEnvironmentArg = expected; - expected = null; - } - - if ( config.currentModule ) { - name = '' + config.currentModule + ": " + name; - } - - if ( !validTest(config.currentModule + ": " + testName) ) { - return; - } - - var test = new Test(name, testName, expected, testEnvironmentArg, async, callback); - test.module = config.currentModule; - test.moduleTestEnvironment = config.currentModuleTestEnviroment; - test.queue(); - }, - - /** - * Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through. - */ - expect: function(asserts) { - config.current.expected = asserts; - }, - - /** - * Asserts true. - * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" ); - */ - ok: function(a, msg) { - a = !!a; - var details = { - result: a, - message: msg - }; - msg = escapeHtml(msg); - QUnit.log(details); - config.current.assertions.push({ - result: a, - message: msg - }); - }, - - /** - * Checks that the first two arguments are equal, with an optional message. - * Prints out both actual and expected values. - * - * Prefered to ok( actual == expected, message ) - * - * @example equal( format("Received {0} bytes.", 2), "Received 2 bytes." ); - * - * @param Object actual - * @param Object expected - * @param String message (optional) - */ - equal: function(actual, expected, message) { - QUnit.push(expected == actual, actual, expected, message); - }, - - notEqual: function(actual, expected, message) { - QUnit.push(expected != actual, actual, expected, message); - }, - - deepEqual: function(actual, expected, message) { - QUnit.push(QUnit.equiv(actual, expected), actual, expected, message); - }, - - notDeepEqual: function(actual, expected, message) { - QUnit.push(!QUnit.equiv(actual, expected), actual, expected, message); - }, - - strictEqual: function(actual, expected, message) { - QUnit.push(expected === actual, actual, expected, message); - }, - - notStrictEqual: function(actual, expected, message) { - QUnit.push(expected !== actual, actual, expected, message); - }, - - raises: function(block, expected, message) { - var actual, ok = false; - - if (typeof expected === 'string') { - message = expected; - expected = null; - } - - try { - block(); - } catch (e) { - actual = e; - } - - if (actual) { - // we don't want to validate thrown error - if (!expected) { - ok = true; - // expected is a regexp - } else if (QUnit.objectType(expected) === "regexp") { - ok = expected.test(actual); - // expected is a constructor - } else if (actual instanceof expected) { - ok = true; - // expected is a validation function which returns true is validation passed - } else if (expected.call({}, actual) === true) { - ok = true; - } - } - - QUnit.ok(ok, message); - }, - - start: function() { - config.semaphore--; - if (config.semaphore > 0) { - // don't start until equal number of stop-calls - return; - } - if (config.semaphore < 0) { - // ignore if start is called more often then stop - config.semaphore = 0; - } - // A slight delay, to avoid any current callbacks - if ( defined.setTimeout ) { - window.setTimeout(function() { - if ( config.timeout ) { - clearTimeout(config.timeout); - } - - config.blocking = false; - process(); - }, 13); - } else { - config.blocking = false; - process(); - } - }, - - stop: function(timeout) { - config.semaphore++; - config.blocking = true; - - if ( timeout && defined.setTimeout ) { - clearTimeout(config.timeout); - config.timeout = window.setTimeout(function() { - QUnit.ok( false, "Test timed out" ); - QUnit.start(); - }, timeout); - } - } -}; - -// Backwards compatibility, deprecated -QUnit.equals = QUnit.equal; -QUnit.same = QUnit.deepEqual; - -// Maintain internal state -var config = { - // The queue of tests to run - queue: [], - - // block until document ready - blocking: true, - - // by default, run previously failed tests first - // very useful in combination with "Hide passed tests" checked - reorder: true, - - noglobals: false, - notrycatch: false -}; - -// Load paramaters -(function() { - var location = window.location || { search: "", protocol: "file:" }, - params = location.search.slice( 1 ).split( "&" ), - length = params.length, - urlParams = {}, - current; - - if ( params[ 0 ] ) { - for ( var i = 0; i < length; i++ ) { - current = params[ i ].split( "=" ); - current[ 0 ] = decodeURIComponent( current[ 0 ] ); - // allow just a key to turn on a flag, e.g., test.html?noglobals - current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true; - urlParams[ current[ 0 ] ] = current[ 1 ]; - if ( current[ 0 ] in config ) { - config[ current[ 0 ] ] = current[ 1 ]; - } - } - } - - QUnit.urlParams = urlParams; - config.filter = urlParams.filter; - - // Figure out if we're running the tests from a server or not - QUnit.isLocal = !!(location.protocol === 'file:'); -})(); - -// Expose the API as global variables, unless an 'exports' -// object exists, in that case we assume we're in CommonJS -if ( typeof exports === "undefined" || typeof require === "undefined" ) { - extend(window, QUnit); - window.QUnit = QUnit; -} else { - extend(exports, QUnit); - exports.QUnit = QUnit; -} - -// define these after exposing globals to keep them in these QUnit namespace only -extend(QUnit, { - config: config, - - // Initialize the configuration options - init: function() { - extend(config, { - stats: { all: 0, bad: 0 }, - moduleStats: { all: 0, bad: 0 }, - started: +new Date, - updateRate: 1000, - blocking: false, - autostart: true, - autorun: false, - filter: "", - queue: [], - semaphore: 0 - }); - - var tests = id( "qunit-tests" ), - banner = id( "qunit-banner" ), - result = id( "qunit-testresult" ); - - if ( tests ) { - tests.innerHTML = ""; - } - - if ( banner ) { - banner.className = ""; - } - - if ( result ) { - result.parentNode.removeChild( result ); - } - - if ( tests ) { - result = document.createElement( "p" ); - result.id = "qunit-testresult"; - result.className = "result"; - tests.parentNode.insertBefore( result, tests ); - result.innerHTML = 'Running...
       '; - } - }, - - /** - * Resets the test setup. Useful for tests that modify the DOM. - * - * If jQuery is available, uses jQuery's html(), otherwise just innerHTML. - */ - reset: function() { - if ( window.jQuery ) { - jQuery( "#qunit-fixture" ).html( config.fixture ); - } else { - var main = id( 'qunit-fixture' ); - if ( main ) { - main.innerHTML = config.fixture; - } - } - }, - - /** - * Trigger an event on an element. - * - * @example triggerEvent( document.body, "click" ); - * - * @param DOMElement elem - * @param String type - */ - triggerEvent: function( elem, type, event ) { - if ( document.createEvent ) { - event = document.createEvent("MouseEvents"); - event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView, - 0, 0, 0, 0, 0, false, false, false, false, 0, null); - elem.dispatchEvent( event ); - - } else if ( elem.fireEvent ) { - elem.fireEvent("on"+type); - } - }, - - // Safe object type checking - is: function( type, obj ) { - return QUnit.objectType( obj ) == type; - }, - - objectType: function( obj ) { - if (typeof obj === "undefined") { - return "undefined"; - - // consider: typeof null === object - } - if (obj === null) { - return "null"; - } - - var type = Object.prototype.toString.call( obj ) - .match(/^\[object\s(.*)\]$/)[1] || ''; - - switch (type) { - case 'Number': - if (isNaN(obj)) { - return "nan"; - } else { - return "number"; - } - case 'String': - case 'Boolean': - case 'Array': - case 'Date': - case 'RegExp': - case 'Function': - return type.toLowerCase(); - } - if (typeof obj === "object") { - return "object"; - } - return undefined; - }, - - push: function(result, actual, expected, message) { - var details = { - result: result, - message: message, - actual: actual, - expected: expected - }; - - message = escapeHtml(message) || (result ? "okay" : "failed"); - message = '' + message + ""; - expected = escapeHtml(QUnit.jsDump.parse(expected)); - actual = escapeHtml(QUnit.jsDump.parse(actual)); - var output = message + ''; - if (actual != expected) { - output += ''; - output += ''; - } - if (!result) { - var source = sourceFromStacktrace(); - if (source) { - details.source = source; - output += ''; - } - } - output += "
      Expected:
      ' + expected + '
      Result:
      ' + actual + '
      Diff:
      ' + QUnit.diff(expected, actual) +'
      Source:
      ' + escapeHtml(source) + '
      "; - - QUnit.log(details); - - config.current.assertions.push({ - result: !!result, - message: output - }); - }, - - url: function( params ) { - params = extend( extend( {}, QUnit.urlParams ), params ); - var querystring = "?", - key; - for ( key in params ) { - querystring += encodeURIComponent( key ) + "=" + - encodeURIComponent( params[ key ] ) + "&"; - } - return window.location.pathname + querystring.slice( 0, -1 ); - }, - - // Logging callbacks; all receive a single argument with the listed properties - // run test/logs.html for any related changes - begin: function() {}, - // done: { failed, passed, total, runtime } - done: function() {}, - // log: { result, actual, expected, message } - log: function() {}, - // testStart: { name } - testStart: function() {}, - // testDone: { name, failed, passed, total } - testDone: function() {}, - // moduleStart: { name } - moduleStart: function() {}, - // moduleDone: { name, failed, passed, total } - moduleDone: function() {} -}); - -if ( typeof document === "undefined" || document.readyState === "complete" ) { - config.autorun = true; -} - -addEvent(window, "load", function() { - QUnit.begin({}); - - // Initialize the config, saving the execution queue - var oldconfig = extend({}, config); - QUnit.init(); - extend(config, oldconfig); - - config.blocking = false; - - var userAgent = id("qunit-userAgent"); - if ( userAgent ) { - userAgent.innerHTML = navigator.userAgent; - } - var banner = id("qunit-header"); - if ( banner ) { - banner.innerHTML = ' ' + banner.innerHTML + ' ' + - '' + - ''; - addEvent( banner, "change", function( event ) { - var params = {}; - params[ event.target.name ] = event.target.checked ? true : undefined; - window.location = QUnit.url( params ); - }); - } - - var toolbar = id("qunit-testrunner-toolbar"); - if ( toolbar ) { - var filter = document.createElement("input"); - filter.type = "checkbox"; - filter.id = "qunit-filter-pass"; - addEvent( filter, "click", function() { - var ol = document.getElementById("qunit-tests"); - if ( filter.checked ) { - ol.className = ol.className + " hidepass"; - } else { - var tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " "; - ol.className = tmp.replace(/ hidepass /, " "); - } - if ( defined.sessionStorage ) { - if (filter.checked) { - sessionStorage.setItem("qunit-filter-passed-tests", "true"); - } else { - sessionStorage.removeItem("qunit-filter-passed-tests"); - } - } - }); - if ( defined.sessionStorage && sessionStorage.getItem("qunit-filter-passed-tests") ) { - filter.checked = true; - var ol = document.getElementById("qunit-tests"); - ol.className = ol.className + " hidepass"; - } - toolbar.appendChild( filter ); - - var label = document.createElement("label"); - label.setAttribute("for", "qunit-filter-pass"); - label.innerHTML = "Hide passed tests"; - toolbar.appendChild( label ); - } - - var main = id('qunit-fixture'); - if ( main ) { - config.fixture = main.innerHTML; - } - - if (config.autostart) { - QUnit.start(); - } -}); - -function done() { - config.autorun = true; - - // Log the last module results - if ( config.currentModule ) { - QUnit.moduleDone( { - name: config.currentModule, - failed: config.moduleStats.bad, - passed: config.moduleStats.all - config.moduleStats.bad, - total: config.moduleStats.all - } ); - } - - var banner = id("qunit-banner"), - tests = id("qunit-tests"), - runtime = +new Date - config.started, - passed = config.stats.all - config.stats.bad, - html = [ - 'Tests completed in ', - runtime, - ' milliseconds.
      ', - '', - passed, - ' tests of ', - config.stats.all, - ' passed, ', - config.stats.bad, - ' failed.' - ].join(''); - - if ( banner ) { - banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass"); - } - - if ( tests ) { - id( "qunit-testresult" ).innerHTML = html; - } - - if ( typeof document !== "undefined" && document.title ) { - // show ✖ for good, ✔ for bad suite result in title - // use escape sequences in case file gets loaded with non-utf-8-charset - document.title = (config.stats.bad ? "\u2716" : "\u2714") + " " + document.title; - } - - QUnit.done( { - failed: config.stats.bad, - passed: passed, - total: config.stats.all, - runtime: runtime - } ); -} - -function validTest( name ) { - var filter = config.filter, - run = false; - - if ( !filter ) { - return true; - } - - var not = filter.charAt( 0 ) === "!"; - if ( not ) { - filter = filter.slice( 1 ); - } - - if ( name.indexOf( filter ) !== -1 ) { - return !not; - } - - if ( not ) { - run = true; - } - - return run; -} - -// so far supports only Firefox, Chrome and Opera (buggy) -// could be extended in the future to use something like https://github.com/csnover/TraceKit -function sourceFromStacktrace() { - try { - throw new Error(); - } catch ( e ) { - if (e.stacktrace) { - // Opera - return e.stacktrace.split("\n")[6]; - } else if (e.stack) { - // Firefox, Chrome - return e.stack.split("\n")[4]; - } - } -} - -function escapeHtml(s) { - if (!s) { - return ""; - } - s = s + ""; - return s.replace(/[\&"<>\\]/g, function(s) { - switch(s) { - case "&": return "&"; - case "\\": return "\\\\"; - case '"': return '\"'; - case "<": return "<"; - case ">": return ">"; - default: return s; - } - }); -} - -function synchronize( callback ) { - config.queue.push( callback ); - - if ( config.autorun && !config.blocking ) { - process(); - } -} - -function process() { - var start = (new Date()).getTime(); - - while ( config.queue.length && !config.blocking ) { - if ( config.updateRate <= 0 || (((new Date()).getTime() - start) < config.updateRate) ) { - config.queue.shift()(); - } else { - window.setTimeout( process, 13 ); - break; - } - } - if (!config.blocking && !config.queue.length) { - done(); - } -} - -function saveGlobal() { - config.pollution = []; - - if ( config.noglobals ) { - for ( var key in window ) { - config.pollution.push( key ); - } - } -} - -function checkPollution( name ) { - var old = config.pollution; - saveGlobal(); - - var newGlobals = diff( config.pollution, old ); - if ( newGlobals.length > 0 ) { - ok( false, "Introduced global variable(s): " + newGlobals.join(", ") ); - } - - var deletedGlobals = diff( old, config.pollution ); - if ( deletedGlobals.length > 0 ) { - ok( false, "Deleted global variable(s): " + deletedGlobals.join(", ") ); - } -} - -// returns a new Array with the elements that are in a but not in b -function diff( a, b ) { - var result = a.slice(); - for ( var i = 0; i < result.length; i++ ) { - for ( var j = 0; j < b.length; j++ ) { - if ( result[i] === b[j] ) { - result.splice(i, 1); - i--; - break; - } - } - } - return result; -} - -function fail(message, exception, callback) { - if ( typeof console !== "undefined" && console.error && console.warn ) { - console.error(message); - console.error(exception); - console.warn(callback.toString()); - - } else if ( window.opera && opera.postError ) { - opera.postError(message, exception, callback.toString); - } -} - -function extend(a, b) { - for ( var prop in b ) { - if ( b[prop] === undefined ) { - delete a[prop]; - } else { - a[prop] = b[prop]; - } - } - - return a; -} - -function addEvent(elem, type, fn) { - if ( elem.addEventListener ) { - elem.addEventListener( type, fn, false ); - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, fn ); - } else { - fn(); - } -} - -function id(name) { - return !!(typeof document !== "undefined" && document && document.getElementById) && - document.getElementById( name ); -} - -// Test for equality any JavaScript type. -// Discussions and reference: http://philrathe.com/articles/equiv -// Test suites: http://philrathe.com/tests/equiv -// Author: Philippe Rathé -QUnit.equiv = function () { - - var innerEquiv; // the real equiv function - var callers = []; // stack to decide between skip/abort functions - var parents = []; // stack to avoiding loops from circular referencing - - // Call the o related callback with the given arguments. - function bindCallbacks(o, callbacks, args) { - var prop = QUnit.objectType(o); - if (prop) { - if (QUnit.objectType(callbacks[prop]) === "function") { - return callbacks[prop].apply(callbacks, args); - } else { - return callbacks[prop]; // or undefined - } - } - } - - var callbacks = function () { - - // for string, boolean, number and null - function useStrictEquality(b, a) { - if (b instanceof a.constructor || a instanceof b.constructor) { - // to catch short annotaion VS 'new' annotation of a declaration - // e.g. var i = 1; - // var j = new Number(1); - return a == b; - } else { - return a === b; - } - } - - return { - "string": useStrictEquality, - "boolean": useStrictEquality, - "number": useStrictEquality, - "null": useStrictEquality, - "undefined": useStrictEquality, - - "nan": function (b) { - return isNaN(b); - }, - - "date": function (b, a) { - return QUnit.objectType(b) === "date" && a.valueOf() === b.valueOf(); - }, - - "regexp": function (b, a) { - return QUnit.objectType(b) === "regexp" && - a.source === b.source && // the regex itself - a.global === b.global && // and its modifers (gmi) ... - a.ignoreCase === b.ignoreCase && - a.multiline === b.multiline; - }, - - // - skip when the property is a method of an instance (OOP) - // - abort otherwise, - // initial === would have catch identical references anyway - "function": function () { - var caller = callers[callers.length - 1]; - return caller !== Object && - typeof caller !== "undefined"; - }, - - "array": function (b, a) { - var i, j, loop; - var len; - - // b could be an object literal here - if ( ! (QUnit.objectType(b) === "array")) { - return false; - } - - len = a.length; - if (len !== b.length) { // safe and faster - return false; - } - - //track reference to avoid circular references - parents.push(a); - for (i = 0; i < len; i++) { - loop = false; - for(j=0;j= 0) { - type = "array"; - } else { - type = typeof obj; - } - return type; - }, - separator:function() { - return this.multiline ? this.HTML ? '
      ' : '\n' : this.HTML ? ' ' : ' '; - }, - indent:function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing - if ( !this.multiline ) - return ''; - var chr = this.indentChar; - if ( this.HTML ) - chr = chr.replace(/\t/g,' ').replace(/ /g,' '); - return Array( this._depth_ + (extra||0) ).join(chr); - }, - up:function( a ) { - this._depth_ += a || 1; - }, - down:function( a ) { - this._depth_ -= a || 1; - }, - setParser:function( name, parser ) { - this.parsers[name] = parser; - }, - // The next 3 are exposed so you can use them - quote:quote, - literal:literal, - join:join, - // - _depth_: 1, - // This is the list of parsers, to modify them, use jsDump.setParser - parsers:{ - window: '[Window]', - document: '[Document]', - error:'[ERROR]', //when no parser is found, shouldn't happen - unknown: '[Unknown]', - 'null':'null', - 'undefined':'undefined', - 'function':function( fn ) { - var ret = 'function', - name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE - if ( name ) - ret += ' ' + name; - ret += '('; - - ret = [ ret, QUnit.jsDump.parse( fn, 'functionArgs' ), '){'].join(''); - return join( ret, QUnit.jsDump.parse(fn,'functionCode'), '}' ); - }, - array: array, - nodelist: array, - arguments: array, - object:function( map ) { - var ret = [ ]; - QUnit.jsDump.up(); - for ( var key in map ) - ret.push( QUnit.jsDump.parse(key,'key') + ': ' + QUnit.jsDump.parse(map[key]) ); - QUnit.jsDump.down(); - return join( '{', ret, '}' ); - }, - node:function( node ) { - var open = QUnit.jsDump.HTML ? '<' : '<', - close = QUnit.jsDump.HTML ? '>' : '>'; - - var tag = node.nodeName.toLowerCase(), - ret = open + tag; - - for ( var a in QUnit.jsDump.DOMAttrs ) { - var val = node[QUnit.jsDump.DOMAttrs[a]]; - if ( val ) - ret += ' ' + a + '=' + QUnit.jsDump.parse( val, 'attribute' ); - } - return ret + close + open + '/' + tag + close; - }, - functionArgs:function( fn ) {//function calls it internally, it's the arguments part of the function - var l = fn.length; - if ( !l ) return ''; - - var args = Array(l); - while ( l-- ) - args[l] = String.fromCharCode(97+l);//97 is 'a' - return ' ' + args.join(', ') + ' '; - }, - key:quote, //object calls it internally, the key part of an item in a map - functionCode:'[code]', //function calls it internally, it's the content of the function - attribute:quote, //node calls it internally, it's an html attribute value - string:quote, - date:quote, - regexp:literal, //regex - number:literal, - 'boolean':literal - }, - DOMAttrs:{//attributes to dump from nodes, name=>realName - id:'id', - name:'name', - 'class':'className' - }, - HTML:false,//if true, entities are escaped ( <, >, \t, space and \n ) - indentChar:' ',//indentation unit - multiline:true //if true, items in a collection, are separated by a \n, else just a space. - }; - - return jsDump; -})(); - -// from Sizzle.js -function getText( elems ) { - var ret = "", elem; - - for ( var i = 0; elems[i]; i++ ) { - elem = elems[i]; - - // Get the text from text nodes and CDATA nodes - if ( elem.nodeType === 3 || elem.nodeType === 4 ) { - ret += elem.nodeValue; - - // Traverse everything else, except comment nodes - } else if ( elem.nodeType !== 8 ) { - ret += getText( elem.childNodes ); - } - } - - return ret; -}; - -/* - * Javascript Diff Algorithm - * By John Resig (http://ejohn.org/) - * Modified by Chu Alan "sprite" - * - * Released under the MIT license. - * - * More Info: - * http://ejohn.org/projects/javascript-diff-algorithm/ - * - * Usage: QUnit.diff(expected, actual) - * - * QUnit.diff("the quick brown fox jumped over", "the quick fox jumps over") == "the quick brown fox jumped jumps over" - */ -QUnit.diff = (function() { - function diff(o, n){ - var ns = new Object(); - var os = new Object(); - - for (var i = 0; i < n.length; i++) { - if (ns[n[i]] == null) - ns[n[i]] = { - rows: new Array(), - o: null - }; - ns[n[i]].rows.push(i); - } - - for (var i = 0; i < o.length; i++) { - if (os[o[i]] == null) - os[o[i]] = { - rows: new Array(), - n: null - }; - os[o[i]].rows.push(i); - } - - for (var i in ns) { - if (ns[i].rows.length == 1 && typeof(os[i]) != "undefined" && os[i].rows.length == 1) { - n[ns[i].rows[0]] = { - text: n[ns[i].rows[0]], - row: os[i].rows[0] - }; - o[os[i].rows[0]] = { - text: o[os[i].rows[0]], - row: ns[i].rows[0] - }; - } - } - - for (var i = 0; i < n.length - 1; i++) { - if (n[i].text != null && n[i + 1].text == null && n[i].row + 1 < o.length && o[n[i].row + 1].text == null && - n[i + 1] == o[n[i].row + 1]) { - n[i + 1] = { - text: n[i + 1], - row: n[i].row + 1 - }; - o[n[i].row + 1] = { - text: o[n[i].row + 1], - row: i + 1 - }; - } - } - - for (var i = n.length - 1; i > 0; i--) { - if (n[i].text != null && n[i - 1].text == null && n[i].row > 0 && o[n[i].row - 1].text == null && - n[i - 1] == o[n[i].row - 1]) { - n[i - 1] = { - text: n[i - 1], - row: n[i].row - 1 - }; - o[n[i].row - 1] = { - text: o[n[i].row - 1], - row: i - 1 - }; - } - } - - return { - o: o, - n: n - }; - } - - return function(o, n){ - o = o.replace(/\s+$/, ''); - n = n.replace(/\s+$/, ''); - var out = diff(o == "" ? [] : o.split(/\s+/), n == "" ? [] : n.split(/\s+/)); - - var str = ""; - - var oSpace = o.match(/\s+/g); - if (oSpace == null) { - oSpace = [" "]; - } - else { - oSpace.push(" "); - } - var nSpace = n.match(/\s+/g); - if (nSpace == null) { - nSpace = [" "]; - } - else { - nSpace.push(" "); - } - - if (out.n.length == 0) { - for (var i = 0; i < out.o.length; i++) { - str += '' + out.o[i] + oSpace[i] + ""; - } - } - else { - if (out.n[0].text == null) { - for (n = 0; n < out.o.length && out.o[n].text == null; n++) { - str += '' + out.o[n] + oSpace[n] + ""; - } - } - - for (var i = 0; i < out.n.length; i++) { - if (out.n[i].text == null) { - str += '' + out.n[i] + nSpace[i] + ""; - } - else { - var pre = ""; - - for (n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++) { - pre += '' + out.o[n] + oSpace[n] + ""; - } - str += " " + out.n[i].text + nSpace[i] + pre; - } - } - } - - return str; - }; -})(); - -})(this); diff --git a/tests/unit/core/core.html b/tests/unit/core/core.html deleted file mode 100644 index 4b992bb..0000000 --- a/tests/unit/core/core.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - MapQuery Core Test Suite - - - - - - - - - - - - - - - - -

      MapQuery Test Suite (MapQuery Core)

      - -

      -

      -
        -
      - -
      -
      -
      - -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/tests/unit/core/testMapQuery.js b/tests/unit/core/testMapQuery.js deleted file mode 100644 index e404ace..0000000 --- a/tests/unit/core/testMapQuery.js +++ /dev/null @@ -1,1100 +0,0 @@ -/* - * geoMap unit tests - */ -(function($) { - -module('mapQuery'); - -// Compares two arrays with floats (must have the same size) -var equalsFloatArray = function (a, b, msg, precision) { - if (a.length!=b.length) { - throw('Arrays must have the same size'); - } - var aFixed = []; - var bFixed = []; - for (var i=0; i - - - - MapQuery Feature Info Widget Tests - - - - - - - - - - - - - - - - - -

      MapQuery Test Suite (Feature Info Widget)

      -

      -

      -
        -
      - -
      -
      -
      -
      -
      - - - diff --git a/tests/unit/featureinfo/testFeatureInfo.js b/tests/unit/featureinfo/testFeatureInfo.js deleted file mode 100644 index 8be98cb..0000000 --- a/tests/unit/featureinfo/testFeatureInfo.js +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Popup unit tests - */ -(function($) { -module('featureInfo'); - -asyncTest("Feature Info is shown", 3, function() { - var map = $('#map').mapQuery({ - layers: { - type: 'JSON', - label: 'Polygons', - url: '../../../demo/data/poly.json' - } - }); - var info = $('#info1').mqFeatureInfo({ - map: map, - contents: function(feature) { - return '

      ' + feature.properties.id + '

      '; - } - }); - - var mq = map.data('mapQuery'); - mq.layers()[0].bind('layerloadend', function(evt) { - var features = this.features(); - - features[0].select(); - equals($('#info1').find('p').length, 1, 'Feature Info contains data'); - equals($('#info1').find('p').text(), 'poly1-1', - 'Feature 1 was selected'); - - features[1].select(); - equals($('#info1').find('p').text(), 'poly1-2', - 'Feature 2 was selected'); - - start(); - }); -}); - -asyncTest("Feature Info bound to two nodes", 5, function() { - var map = $('#map').mapQuery({ - layers: { - type: 'JSON', - label: 'Polygons', - url: '../../../demo/data/poly.json' - } - }); - var info = $('.info'); - info.mqFeatureInfo({ - map: map, - contents: function(feature) { - return '

      ' + feature.properties.id + '

      '; - } - }); - - var mq = map.data('mapQuery'); - mq.layers()[0].bind('layerloadend', function(evt) { - var features = this.features(); - features[0].select(); - equals($('#info1').find('p').length, 1, 'Feature Info contains data'); - equals($('#info1').find('p').text(), 'poly1-1', - 'Feature 1 was selected (#info1)'); - equals($('#info2').find('p').text(), 'poly1-1', - 'Feature 1 was selected (#info2)'); - - features[1].select(); - equals($('#info1').find('p').text(), 'poly1-2', - 'Feature 2 was selected (#info1)'); - equals($('#info2').find('p').text(), 'poly1-2', - 'Feature 2 was selected (#info2)'); - - start(); - }); -}); - -asyncTest("Feature Info is hidden feature gets unselected", 3, function() { - var map = $('#map').mapQuery({ - layers: { - type: 'JSON', - label: 'Polygons', - url: '../../../demo/data/poly.json' - } - }); - var info = $('#info1').mqFeatureInfo({ - map: map, - contents: function(feature) { - return '

      ' + feature.properties.id + '

      '; - } - }); - - var mq = map.data('mapQuery'); - mq.layers()[0].bind('layerloadend', function(evt) { - var feature = this.features()[0]; - feature.select(); - equals($('#info1').find('p').length, 1, 'Feature Info contains data'); - equals($('#info1').find('p').text(), 'poly1-1', - 'Feature 1 was selected'); - - feature.unselect(); - equals($('#info1').children().length, 0, 'Feature Info is empty'); - - start(); - }); -}); -})(jQuery); diff --git a/tests/unit/index.html b/tests/unit/index.html deleted file mode 100644 index e5c1d06..0000000 --- a/tests/unit/index.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - - MapQuery Unit Tests - - - - - - -

      MapQuery Unit Tests

      - -

      MapQuery

      - - - - diff --git a/tests/unit/layermanager/layermanager.html b/tests/unit/layermanager/layermanager.html deleted file mode 100644 index 01dd2d7..0000000 --- a/tests/unit/layermanager/layermanager.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - MapQuery Layermanager Widget Tests - - - - - - - - - - - - - - - - - - -

      MapQuery Test Suite (Layermanager Widget)

      -

      -

      -
        -
      -
      -
      - - diff --git a/tests/unit/layermanager/testLayerManager.js b/tests/unit/layermanager/testLayerManager.js deleted file mode 100644 index 8192ff9..0000000 --- a/tests/unit/layermanager/testLayerManager.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Layermanager unit tests - */ -(function($) { -module('layermanager'); - -test("LayerManager is shown", 1, function() { - var map = $('#map1').mapQuery({ - layers:[{ - type:'osm' - }] - }); - var mq = map.data('mapQuery'); - var layermanager = $('#layermanager').mqLayerManager({map:'#map1'}); - equals($('#layermanager').find('.mq-layermanager').length, 1, 'layermanager contains mq-layermanager'); - - mq.destroy(); - layermanager.empty(); - -}); -//TODO: add tests for: opacity, visibility, layer-order, removing layers, adding layers - -})(jQuery); diff --git a/tests/unit/mouseposition/mouseposition.html b/tests/unit/mouseposition/mouseposition.html deleted file mode 100644 index e0a049e..0000000 --- a/tests/unit/mouseposition/mouseposition.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - MapQuery Mouseposition Widget Tests - - - - - - - - - - - - - - - - - -

      MapQuery Test Suite (MousePosition Widget)

      -

      -

      -
        -
      -
      -
      - - diff --git a/tests/unit/mouseposition/testMousePosition.js b/tests/unit/mouseposition/testMousePosition.js deleted file mode 100644 index 496087e..0000000 --- a/tests/unit/mouseposition/testMousePosition.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Overviewmap unit tests - */ -(function($) { -module('mouseposition'); - -test("Mouseposition is shown", 1, function() { - var map = $('#map1').mapQuery({ - layers:[{ - type:'osm' - }] - }); - var mq = map.data('mapQuery'); - var mouseposition = $('#mouseposition').mqMousePosition({map:'#map1'}); - equals($('#mouseposition').find('#mq-mouseposition-x').length, 1, 'mouseposition contains a x-position field'); - - mq.destroy(); - mouseposition.empty(); -}); - -//TODO: add tests for moving the mouse - -})(jQuery); diff --git a/tests/unit/overviewmap/overviewmap.html b/tests/unit/overviewmap/overviewmap.html deleted file mode 100644 index d36896a..0000000 --- a/tests/unit/overviewmap/overviewmap.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - MapQuery Overviewmap Widget Tests - - - - - - - - - - - - - - - - - -

      MapQuery Test Suite (Overviewmap Widget)

      -

      -

      -
        -
      -
      -
      - - diff --git a/tests/unit/overviewmap/testOverviewmap.js b/tests/unit/overviewmap/testOverviewmap.js deleted file mode 100644 index f00bcfc..0000000 --- a/tests/unit/overviewmap/testOverviewmap.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Overviewmap unit tests - */ -(function($) { -module('overviewmap'); - -test("Overviewmap is shown", 1, function() { - var map = $('#map1').mapQuery({ - layers:[{ - type:'osm' - }] - }); - var mq = map.data('mapQuery'); - var overviewmap = $('#overviewmap').mqOverviewMap({map:'#map1'}); - equals($('.mq-overviewmap-dialog').find('.olMap').length, 1, 'overviewmap contains a map'); - - mq.destroy(); - overviewmap.empty(); -}); - -//TODO: add tests for open/close dialog and panning/zooming on the map - -})(jQuery); diff --git a/tests/unit/popup/popup.html b/tests/unit/popup/popup.html deleted file mode 100644 index db5ba46..0000000 --- a/tests/unit/popup/popup.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - MapQuery Popup Widget Tests - - - - - - - - - - - - - - - - - - -

      MapQuery Test Suite (Popup Widget)

      -

      -

      -
        -
      - -
      -
      - -
      - - - diff --git a/tests/unit/popup/testPopup.js b/tests/unit/popup/testPopup.js deleted file mode 100644 index df94e77..0000000 --- a/tests/unit/popup/testPopup.js +++ /dev/null @@ -1,198 +0,0 @@ -/* - * Popup unit tests - */ -(function($) { -module('popup'); - -asyncTest("Popup is shown", 1, function() { - var map = $('#map').mapQuery({ - layers: { - type: 'JSON', - label: 'Polygons', - url: '../../../demo/data/poly.json' - }, - projection:'EPSG:4326', - maxExtent: [0, -90, 160, 90] - }); - - // There is no easy way to determine the moment when the popup - // is really opened. As monkey patching doesn't work with the - // widget factory (does anyone know why?) we just create a new - // widget, that triggers an event, once the _onFeatureselected - // function is done. - $.widget("mapQuery.mqPopupTest", $.mapQuery.mqPopup, { - _onFeatureselected: function() { - this._superApply("_onFeatureselected", arguments); - $('#popup').trigger('justfortestingpurpose'); - } - }); - - var popup = $('#popup').mqPopupTest({ - map: map, - contents: function(feature) { - return '

      ' + feature.properties.id + '

      '; - } - }); - - var mq = map.data('mapQuery'); - var layer = mq.layers()[0]; - $('#popup').bind('justfortestingpurpose', function(evt, feature) { - equals($('#popup').find('p').length, 1, 'Popup contains data'); - start(); - }); - layer.bind('layerloadend', function(evt) { - var feature = this.features()[0]; - feature.select(); - }); -}); - -asyncTest("Popup outside of the map moves in", 1, function() { - var map = $('#map').mapQuery({ - projection: 'EPSG:4326', - maxExtent: [0, -90, 160, 90]}); - - - $('#popup').mqPopup({ - map: map, - contents: function(feature) { - return '

      ' + feature.properties.id + '

      '; - } - }); - - var mq = map.data('mapQuery'); - var layer = mq.layers({ - type: 'JSON', - label: 'Polygons', - url: '../../../demo/data/poly.json' - }); - - layer.bind('layerloadend', function(evt) { - var feature = this.features()[1]; - var pos1 = mq.olMap.getViewPortPxFromLonLat( - feature.olFeature.geometry.getCentroid().getBounds() - .getCenterLonLat()); - // open popup - feature.select(); - - mq.bind('moveend', function() { - var pos2 = mq.olMap.getViewPortPxFromLonLat( - feature.olFeature.geometry.getCentroid().getBounds() - .getCenterLonLat()); - ok(pos1.x != pos2.x || pos1.y != pos2.y, 'Map moved'); - start(); - }); - }); -}); - -// NOTE vmx 2012-04-22: This test fails with OpenLayers 2.11 due to a bug -asyncTest("Hide popup when moved outside of map (and show it again)", 2, function() { - var map = $('#map').mapQuery({ - projection: 'EPSG:4326', - maxExtent: [0, -120, 160, 90] - }); - - var mq = map.data('mapQuery'); - mq.layers({ - type: 'JSON', - label: 'Polygons', - url: '../../../demo/data/poly.json' - }).bind('layerloadend', function(evt) { - var feature = this.features()[0]; - var pos1 = mq.olMap.getViewPortPxFromLonLat( - feature.olFeature.geometry.getCentroid().getBounds() - .getCenterLonLat()); - var isVisible = null; - - // open the popup - feature.select(); - - mq.bind('moveend', function() { - // first pan - if (isVisible===null) { - isVisible = $('#popup').is(':visible'); - - // pan map back down => popup should appear again - mq.olMap.pan(0, -160, {animate: false}); - } - // second pan - else { - ok(isVisible===false, 'Popup gets hidden'); - ok($('#popup').is(':visible')===true, 'Popup is shown again'); - start(); - } - }); - - // pan map up a lot => popup is hidden - mq.olMap.pan(0, 160, {animate: false}); - }); - $('#popup').mqPopup({ - map: map, - contents: function(feature) { - return '

      ' + feature.properties.id + '

      '; - } - }); -}); - -asyncTest("Unselect feature when popup is closed", 2, function() { - var map = $('#map').mapQuery({ - layers: { - type: 'JSON', - label: 'Polygons', - url: '../../../demo/data/poly.json' - }, - projection:'EPSG:4326', - maxExtent: [0, -90, 160, 90] - }); - var popup = $('#popup').mqPopup({ - map: map, - contents: function(feature) { - return '

      ' + feature.properties.id + '

      '; - } - }); - - var mq = map.data('mapQuery'); - mq.layers()[0].bind('layerloadend', function(evt) { - var feature = this.features()[0]; - // open the popup - feature.select(); - - ok($('#popup').is(':visible')===true, 'Popup is visible'); - - $('#popup a.ui-dialog-titlebar-close').trigger('click'); - ok($('#popup').is(':visible')===false, 'Popup is hidden'); - start(); - }); -}); - -asyncTest("Close popup when feature gets unselected", 2, function() { - var map = $('#map').mapQuery({ - layers: { - type: 'JSON', - label: 'Polygons', - url: '../../../demo/data/poly.json' - }, - projection:'EPSG:4326', - maxExtent: [0, -90, 160, 90] - }); - var popup = $('#popup').mqPopup({ - map: map, - contents: function(feature) { - return '

      ' + feature.properties.id + '

      '; - } - }); - - var mq = map.data('mapQuery'); - mq.layers()[0].bind('layerloadend', function(evt) { - var feature = this.features()[0]; - // open popup - feature.select(); - ok($('#popup').is(':visible')===true, 'Popup is visible'); - - // close popup - feature.unselect(); - ok($('#popup').is(':visible')===false, 'Popup is hidden'); - start(); - }); -}); - -})(jQuery); diff --git a/tests/unit/testsuite.js b/tests/unit/testsuite.js deleted file mode 100644 index eff92ad..0000000 --- a/tests/unit/testsuite.js +++ /dev/null @@ -1,49 +0,0 @@ -function testWidgetDefaults(widget, defaults) { - var pluginDefaults = $.extend({}, - $.ui[widget].prototype.options - ); - - // ensure that all defaults have the correct value - test('defined defaults', function() { - $.each(defaults, function(key, val) { - if ($.isFunction(val)) { - ok(val !== undefined, key); - return; - } - same(pluginDefaults[key], val, key); - }); - }); - - // ensure that all defaults were tested - test('tested defaults', function() { - $.each(pluginDefaults, function(key, val) { - ok(key in defaults, key); - }); - }); -} - -function testWidgetOverrides(widget) { - test('$.widget overrides', function() { - $.each(['_widgetInit', 'option', '_trigger'], function(i, method) { - ok($.Widget.prototype[method] == $.ui[widget].prototype[method], - 'should not override ' + method); - }); - }); -} - -function commonWidgetTests(widget, settings) { - module(widget + ": common widget"); - - testWidgetDefaults(widget, settings.defaults); - testWidgetOverrides(widget); -} - -// load testswarm agent -(function() { - var url = window.location.search; - url = decodeURIComponent( url.slice( url.indexOf("swarmURL=") + 9 ) ); - if ( !url || url.indexOf("http") !== 0 ) { - return; - } - document.write(""); -})(); diff --git a/tests/unit/zoombuttons/testZoombuttons.js b/tests/unit/zoombuttons/testZoombuttons.js deleted file mode 100644 index 8d63f62..0000000 --- a/tests/unit/zoombuttons/testZoombuttons.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Zoombutton unit tests - */ -(function($) { -module('zoombuttons'); - -test("ZoomButtons are shown", 2, function() { - var map = $('#map1').mapQuery({ - layers:[{ - type:'osm' - }] - }); - var mq = map.data('mapQuery'); - var zoombuttons = $('#zoombutton').mqZoomButtons({map:'#map1'}); - equals($('#zoombutton').find('.mq-zoombuttons-plus').length, 1, 'zoombuttons contains plus icon'); - equals($('#zoombutton').find('.mq-zoombuttons-minus').length, 1, 'zoombuttons contains minus icon'); - -}); - -test("ZoomButtons work", 2, function() { - var map = $('#map1').mapQuery({ - layers:[{ - type:'osm' - }] - }); - var mq = map.data('mapQuery'); - var center = mq.center(); - $(".mq-zoombuttons-plus").trigger('click'); - center = mq.center(); - equals(center.zoom, 2, 'Zoomed in'); - $(".mq-zoombuttons-minus").trigger('click'); - center = mq.center(); - equals(center.zoom, 1, 'Zoomed out'); - - -}); - -})(jQuery); diff --git a/tests/unit/zoombuttons/zoombuttons.html b/tests/unit/zoombuttons/zoombuttons.html deleted file mode 100644 index d89566b..0000000 --- a/tests/unit/zoombuttons/zoombuttons.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - MapQuery Zoombutton Widget Tests - - - - - - - - - - - - - - - - - -

      MapQuery Test Suite (ZoomButtons Widget)

      -

      -

      -
        -
      -
      - - - diff --git a/tests/unit/zoomslider/testZoomSlider.js b/tests/unit/zoomslider/testZoomSlider.js deleted file mode 100644 index 3e581c3..0000000 --- a/tests/unit/zoomslider/testZoomSlider.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Zoomslider unit tests - */ -(function($) { -module('zoomslider'); - -test("ZoomSlider is shown", 1, function() { - var map = $('#map1').mapQuery({ - layers:[{ - type:'osm' - }] - }); - var mq = map.data('mapQuery'); - var zoombuttons = $('#zoomslider').mqZoomSlider({map:'#map1'}); - equals($('#zoomslider').find('.ui-slider ').length, 1, 'zoomslider contains slider'); - -}); - -test("ZoomSlider works", 2, function() { - var map = $('#map1').mapQuery({ - layers:[{ - type:'osm' - }] - }); - var mq = map.data('mapQuery'); - var center = mq.center(); - $(".mq-zoomslider-slider").slider('value',19-4); - center = mq.center(); - equals(center.zoom, 4, 'Zoomed in to 4 using slider'); - mq.center({zoom:3}); - equals($(".mq-zoomslider-slider").slider('value'), 19-3, 'Zoomed out to 3, slider is 3'); -}); - -})(jQuery); diff --git a/tests/unit/zoomslider/zoomslider.html b/tests/unit/zoomslider/zoomslider.html deleted file mode 100644 index 54af2d1..0000000 --- a/tests/unit/zoomslider/zoomslider.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - MapQuery Zoombslider Widget Tests - - - - - - - - - - - - - - - - - -

      MapQuery Test Suite (Zoomslider Widget)

      -

      -

      -
        -
      -
      -
      - -