- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 Google 提供的 Android Map Utils(compile 'com.google.maps.android:android-maps-utils:0.4'
)在我的 map 上绘制 GeoJSON 多边形。但是,我得到的 GeoJSON 不包含边界框,因此有时 map 会偏离。这是我返回的多边形示例:
{"type":"Polygon","coordinates":[[[-88.138825,30.719378],[-88.138927,30.719386],[-88.139181,30.719409],[-88.139433,30.719429],[-88.139438,30.719429],[-88.139633,30.719446],[-88.139848,30.719461],[-88.140194,30.719487],[-88.140316,30.719495],[-88.140488,30.719505],[-88.140857,30.719522],[-88.141193,30.719544],[-88.141495,30.719559],[-88.141733,30.719571],[-88.142232,30.719596],[-88.142378,30.719602],[-88.142709,30.719616],[-88.143286,30.719639],[-88.143726,30.719657],[-88.14423,30.719677],[-88.144496,30.71969],[-88.144954,30.719712],[-88.146015,30.719757],[-88.146594,30.719782],[-88.146871,30.719794],[-88.147776,30.719835],[-88.148589,30.719868],[-88.148847,30.719876],[-88.149387,30.719903],[-88.150273,30.719944],[-88.151101,30.719981],[-88.151919,30.720016],[-88.152748,30.720054],[-88.153862,30.720098],[-88.154916,30.72014],[-88.156111,30.720194],[-88.157177,30.720241],[-88.157649,30.720266],[-88.158093,30.720292],[-88.158425,30.720314],[-88.158771,30.720349],[-88.15907,30.72038],[-88.159393,30.720415],[-88.160031,30.720494],[-88.160662,30.72057],[-88.161215,30.720637],[-88.161742,30.720696],[-88.162071,30.720736],[-88.16195,30.720897],[-88.161855,30.721036],[-88.161782,30.721148],[-88.161692,30.721293],[-88.161655,30.721359],[-88.161616,30.72142],[-88.161584,30.721479],[-88.161543,30.721555],[-88.161508,30.721632],[-88.161476,30.721714],[-88.161457,30.721782],[-88.161442,30.721843],[-88.161432,30.721883],[-88.161429,30.721898],[-88.161416,30.721954],[-88.161402,30.722014],[-88.161392,30.722065],[-88.161384,30.722116],[-88.161375,30.722182],[-88.16137,30.722242],[-88.161367,30.722323],[-88.161369,30.722429],[-88.161373,30.722566],[-88.161376,30.722761],[-88.161375,30.723117],[-88.161375,30.723257],[-88.16137,30.72343],[-88.161361,30.723634],[-88.16136,30.723863],[-88.161359,30.724048],[-88.161364,30.724241],[-88.161365,30.724525],[-88.16137,30.724805],[-88.161371,30.724934],[-88.161371,30.725025],[-88.161374,30.725131],[-88.161375,30.725532],[-88.161374,30.725576],[-88.161368,30.725633],[-88.161362,30.725683],[-88.16136,30.725726],[-88.161361,30.725776],[-88.161362,30.725839],[-88.161366,30.725911],[-88.161379,30.726238],[-88.161378,30.726573],[-88.161377,30.726897],[-88.161366,30.727084],[-88.161366,30.727149],[-88.161371,30.727222],[-88.161379,30.72733],[-88.161379,30.727437],[-88.161378,30.727548],[-88.161375,30.727627],[-88.161357,30.727818],[-88.161351,30.727923],[-88.161352,30.728014],[-88.161363,30.728186],[-88.16137,30.728395],[-88.161369,30.72872],[-88.161372,30.728957],[-88.161372,30.729211],[-88.161379,30.729351],[-88.161386,30.72945],[-88.161393,30.729556],[-88.161396,30.729655],[-88.161394,30.729824],[-88.161403,30.730129],[-88.161405,30.730268],[-88.161405,30.730457],[-88.161405,30.730763],[-88.161407,30.730923],[-88.161399,30.731075],[-88.161392,30.731214],[-88.161388,30.731399],[-88.161394,30.731602],[-88.1614,30.731923],[-88.161402,30.732116],[-88.161395,30.732547],[-88.161405,30.732797],[-88.161418,30.733154],[-88.161417,30.733291],[-88.161394,30.733911],[-88.161366,30.734341],[-88.161317,30.734959],[-88.161275,30.735447],[-88.161241,30.735907],[-88.161219,30.736167],[-88.161189,30.736516],[-88.161175,30.736742],[-88.161137,30.737199],[-88.161115,30.737806],[-88.161113,30.738298],[-88.161098,30.738838],[-88.161087,30.739417],[-88.161091,30.73989],[-88.161094,30.740051],[-88.161103,30.740272],[-88.161115,30.74039],[-88.161129,30.740519],[-88.161137,30.740623],[-88.161141,30.740794],[-88.161139,30.741026],[-88.16114,30.741196],[-88.161139,30.741207],[-88.160888,30.741207],[-88.160501,30.741239],[-88.160319,30.741246],[-88.160169,30.741256],[-88.160092,30.741259],[-88.160012,30.741266],[-88.15993,30.741275],[-88.159829,30.741294],[-88.159698,30.741321],[-88.159558,30.741336],[-88.159442,30.741339],[-88.159311,30.741336],[-88.159192,30.741321],[-88.159042,30.74129],[-88.15892,30.741243],[-88.158603,30.74109],[-88.157116,30.7401],[-88.156761,30.739874],[-88.156503,30.739646],[-88.156348,30.739506],[-88.156203,30.739375],[-88.155937,30.739118],[-88.155858,30.739047],[-88.155775,30.738987],[-88.155698,30.738943],[-88.155132,30.738695],[-88.154993,30.738633],[-88.154833,30.738573],[-88.154655,30.738522],[-88.153851,30.738351],[-88.153642,30.738305],[-88.153508,30.738289],[-88.153379,30.738265],[-88.153268,30.738247],[-88.153164,30.738224],[-88.153104,30.738193],[-88.153035,30.738138],[-88.152764,30.737898],[-88.152599,30.737736],[-88.152537,30.73767],[-88.152488,30.737632],[-88.152424,30.737614],[-88.152354,30.737621],[-88.152231,30.73763],[-88.151638,30.7377],[-88.151547,30.737709],[-88.151478,30.737711],[-88.151423,30.737709],[-88.151369,30.737685],[-88.150774,30.737301],[-88.150566,30.737133],[-88.150513,30.737064],[-88.150293,30.736767],[-88.150214,30.736663],[-88.150156,30.73658],[-88.150095,30.736495],[-88.150037,30.736417],[-88.15,30.736359],[-88.149954,30.736326],[-88.149898,30.736294],[-88.149803,30.736258],[-88.149727,30.736238],[-88.14966,30.736233],[-88.14956,30.736236],[-88.149547,30.73634],[-88.149498,30.736348],[-88.149468,30.736352],[-88.149436,30.73635],[-88.149407,30.736338],[-88.14937,30.736311],[-88.149318,30.736274],[-88.14929,30.736263],[-88.149257,30.736257],[-88.149196,30.736254],[-88.149123,30.736255],[-88.149061,30.736263],[-88.148859,30.736315],[-88.148731,30.736359],[-88.148678,30.736383],[-88.148622,30.736419],[-88.148565,30.736465],[-88.148503,30.736535],[-88.148415,30.736665],[-88.148374,30.736741],[-88.148346,30.73681],[-88.148313,30.736877],[-88.148247,30.736981],[-88.148121,30.737155],[-88.148033,30.737254],[-88.14795,30.737343],[-88.147721,30.737555],[-88.147602,30.737666],[-88.147521,30.737727],[-88.147463,30.737774],[-88.147416,30.737801],[-88.147367,30.737821],[-88.147322,30.737829],[-88.147279,30.737832],[-88.147238,30.737826],[-88.147191,30.737816],[-88.147026,30.737784],[-88.146803,30.73773],[-88.146348,30.737553],[-88.146272,30.737511],[-88.146226,30.737483],[-88.146193,30.737473],[-88.146167,30.737474],[-88.146125,30.73749],[-88.145879,30.737622],[-88.145622,30.737802],[-88.145505,30.73789],[-88.145414,30.737988],[-88.145306,30.738118],[-88.145167,30.738276],[-88.144963,30.738541],[-88.144876,30.738652],[-88.144831,30.738696],[-88.14479,30.738717],[-88.144736,30.738731],[-88.144685,30.738728],[-88.144623,30.738715],[-88.14458,30.738713],[-88.144556,30.738726],[-88.144535,30.738753],[-88.144512,30.738792],[-88.144464,30.738838],[-88.144244,30.739018],[-88.143998,30.739253],[-88.143962,30.739305],[-88.143922,30.739366],[-88.143807,30.739526],[-88.143768,30.739569],[-88.143726,30.739605],[-88.143664,30.73964],[-88.14321,30.739782],[-88.143043,30.73985],[-88.142966,30.739892],[-88.142928,30.739925],[-88.142899,30.739965],[-88.142874,30.740014],[-88.142602,30.740543],[-88.142572,30.740602],[-88.142543,30.740646],[-88.142503,30.740694],[-88.142447,30.740732],[-88.141954,30.741003],[-88.141234,30.741423],[-88.141177,30.741444],[-88.141108,30.741462],[-88.141054,30.741471],[-88.141001,30.741468],[-88.14095,30.741466],[-88.140911,30.741462],[-88.140877,30.741462],[-88.140855,30.74147],[-88.14084,30.741487],[-88.140826,30.741517],[-88.140822,30.741548],[-88.14082,30.741635],[-88.140821,30.74167],[-88.140819,30.741694],[-88.140809,30.741714],[-88.140794,30.74173],[-88.140756,30.741739],[-88.140718,30.741746],[-88.140685,30.741745],[-88.140645,30.741735],[-88.140587,30.74172],[-88.140534,30.741703],[-88.140486,30.741683],[-88.140448,30.741667],[-88.140417,30.741666],[-88.140399,30.741673],[-88.140387,30.741691],[-88.140377,30.741716],[-88.140355,30.741772],[-88.140273,30.741933],[-88.140254,30.741987],[-88.140244,30.742031],[-88.140244,30.742063],[-88.140243,30.742087],[-88.140232,30.7421],[-88.140207,30.74211],[-88.140166,30.74211],[-88.140108,30.742097],[-88.139973,30.742066],[-88.139942,30.74206],[-88.139915,30.742066],[-88.139886,30.742079],[-88.139836,30.742119],[-88.138954,30.742806],[-88.13627,30.742502],[-88.136308,30.74465],[-88.136214,30.745348],[-88.136201,30.745379],[-88.136179,30.745403],[-88.136148,30.745425],[-88.136096,30.745434],[-88.136049,30.745436],[-88.135818,30.745406],[-88.135776,30.745408],[-88.13573,30.745412],[-88.13567,30.745425],[-88.135535,30.745464],[-88.135498,30.745462],[-88.135474,30.745455],[-88.135451,30.74544],[-88.13543,30.745413],[-88.135409,30.745397],[-88.135386,30.745391],[-88.135358,30.745395],[-88.135343,30.745408],[-88.135296,30.745461],[-88.135252,30.745505],[-88.13521,30.74554],[-88.135172,30.745567],[-88.135127,30.745607],[-88.135075,30.745657],[-88.13505,30.745692],[-88.135024,30.745738],[-88.135006,30.745784],[-88.134999,30.745832],[-88.135006,30.745881],[-88.135033,30.745944],[-88.135064,30.746002],[-88.135082,30.746037],[-88.135088,30.746067],[-88.135087,30.7461],[-88.135075,30.746132],[-88.135054,30.746173],[-88.13503,30.746208],[-88.135009,30.74624],[-88.134995,30.746273],[-88.134986,30.746288],[-88.134975,30.746301],[-88.134962,30.746307],[-88.134948,30.746309],[-88.134932,30.746306],[-88.134912,30.746297],[-88.134883,30.746283],[-88.134854,30.746268],[-88.134813,30.746248],[-88.134764,30.746218],[-88.134665,30.746148],[-88.134589,30.746089],[-88.13453,30.746043],[-88.134507,30.746028],[-88.134482,30.746014],[-88.134452,30.746004],[-88.134427,30.745998],[-88.134394,30.745997],[-88.13436,30.745997],[-88.134328,30.746],[-88.134291,30.746007],[-88.134248,30.74602],[-88.134203,30.746035],[-88.134159,30.746056],[-88.134102,30.746087],[-88.134048,30.746129],[-88.134002,30.74618],[-88.13396,30.746239],[-88.133947,30.746269],[-88.133938,30.746293],[-88.133934,30.746327],[-88.133932,30.746364],[-88.133933,30.746407],[-88.133934,30.746453],[-88.133934,30.746503],[-88.133936,30.746522],[-88.133944,30.746541],[-88.133958,30.746559],[-88.133974,30.74658],[-88.133984,30.746599],[-88.133987,30.746617],[-88.133986,30.74663],[-88.133982,30.746644],[-88.133972,30.746655],[-88.133952,30.746665],[-88.133927,30.746673],[-88.133868,30.746683],[-88.133782,30.746697],[-88.133746,30.746706],[-88.133721,30.74672],[-88.133704,30.746736],[-88.133691,30.746755],[-88.133683,30.746786],[-88.133679,30.746821],[-88.133678,30.746862],[-88.133683,30.746887],[-88.133694,30.746909],[-88.133715,30.746928],[-88.133755,30.746946],[-88.133791,30.746962],[-88.133813,30.746978],[-88.133833,30.746997],[-88.133843,30.747014],[-88.13385,30.747031],[-88.133852,30.747048],[-88.133849,30.747062],[-88.133836,30.747073],[-88.133814,30.747079],[-88.133791,30.747081],[-88.133746,30.747084],[-88.133707,30.747091],[-88.133669,30.747101],[-88.133647,30.747106],[-88.133628,30.747114],[-88.133617,30.747124],[-88.133611,30.747141],[-88.133608,30.747156],[-88.133608,30.747178],[-88.133607,30.747197],[-88.133604,30.747217],[-88.133593,30.747233],[-88.133571,30.747252],[-88.133548,30.747262],[-88.133522,30.747272],[-88.133498,30.747282],[-88.13347,30.747299],[-88.133456,30.747313],[-88.133449,30.747328],[-88.133449,30.747346],[-88.133453,30.747362],[-88.133464,30.747374],[-88.133476,30.747386],[-88.133491,30.747401],[-88.133506,30.747417],[-88.133517,30.747432],[-88.133525,30.747447],[-88.133529,30.747462],[-88.133527,30.747477],[-88.13352,30.747489],[-88.133503,30.747498],[-88.13348,30.747506],[-88.13345,30.74751],[-88.133427,30.747509],[-88.133399,30.747503],[-88.133372,30.747496],[-88.133351,30.747494],[-88.133332,30.747499],[-88.133314,30.74751],[-88.133301,30.747526],[-88.133293,30.74754],[-88.133286,30.747556],[-88.133284,30.747574],[-88.133291,30.747588],[-88.133304,30.747603],[-88.133322,30.747616],[-88.133348,30.747629],[-88.133371,30.747642],[-88.133386,30.747657],[-88.1334,30.747673],[-88.133412,30.747691],[-88.133431,30.74772],[-88.133439,30.747737],[-88.133443,30.747755],[-88.13344,30.747771],[-88.133431,30.747783],[-88.133417,30.747797],[-88.1334,30.747805],[-88.13338,30.747809],[-88.133355,30.747808],[-88.133336,30.747808],[-88.133317,30.747812],[-88.133298,30.747818],[-88.133287,30.747826],[-88.133274,30.747841],[-88.133262,30.747858],[-88.133256,30.747877],[-88.133254,30.747895],[-88.133252,30.747924],[-88.133255,30.747949],[-88.133255,30.747974],[-88.133252,30.747997],[-88.133235,30.748034],[-88.133161,30.748169],[-88.133074,30.748355],[-88.133054,30.748379],[-88.13303,30.748402],[-88.133008,30.748431],[-88.132998,30.748448],[-88.132995,30.748465],[-88.132998,30.748482],[-88.133009,30.748495],[-88.133025,30.74851],[-88.133043,30.748522],[-88.133281,30.748692],[-88.133292,30.748704],[-88.133301,30.748718],[-88.133305,30.748732],[-88.133307,30.748753],[-88.133305,30.748775],[-88.133268,30.748966],[-88.133026,30.74896],[-88.132821,30.748958],[-88.132613,30.748957],[-88.132587,30.748957],[-88.132415,30.748956],[-88.132216,30.748957],[-88.131968,30.748957],[-88.131798,30.748957],[-88.13151,30.748954],[-88.131175,30.748955],[-88.130916,30.748954],[-88.130557,30.748947],[-88.130256,30.748935],[-88.129954,30.748931],[-88.129681,30.74893],[-88.129429,30.748925],[-88.129164,30.748924],[-88.128922,30.748923],[-88.12873,30.748925],[-88.128528,30.748931],[-88.128394,30.748941],[-88.128247,30.748951],[-88.128121,30.748968],[-88.127974,30.748994],[-88.127815,30.74903],[-88.127699,30.749062],[-88.127582,30.749098],[-88.127452,30.749143],[-88.127352,30.749184],[-88.127239,30.749233],[-88.127153,30.749273],[-88.127052,30.749329],[-88.126969,30.749378],[-88.126867,30.749446],[-88.126642,30.749584],[-88.126565,30.749631],[-88.126501,30.74967],[-88.126465,30.749635],[-88.126393,30.749565],[-88.12631,30.749473],[-88.126284,30.749443],[-88.126025,30.749132],[-88.125765,30.748829],[-88.1255,30.748507],[-88.125263,30.74823],[-88.125081,30.748001],[-88.124845,30.747717],[-88.124636,30.747471],[-88.124415,30.747191],[-88.124196,30.746919],[-88.124007,30.746693],[-88.123794,30.746433],[-88.123611,30.746229],[-88.123424,30.74604],[-88.123198,30.745811],[-88.122975,30.745596],[-88.122777,30.745397],[-88.122578,30.745196],[-88.122378,30.744998],[-88.122214,30.744832],[-88.1221,30.744722],[-88.12204,30.744673],[-88.122015,30.744642],[-88.122143,30.744548],[-88.122426,30.744346],[-88.122829,30.744058],[-88.123216,30.743779],[-88.123609,30.743497],[-88.1243,30.743009],[-88.124694,30.742722],[-88.125184,30.742375],[-88.125495,30.742154],[-88.125749,30.741984],[-88.125812,30.741944],[-88.125853,30.741923],[-88.125916,30.741888],[-88.12598,30.741854],[-88.126057,30.741816],[-88.126132,30.74178],[-88.126229,30.74174],[-88.126365,30.741689],[-88.126533,30.741637],[-88.126669,30.741601],[-88.126819,30.741569],[-88.127013,30.741531],[-88.127204,30.741496],[-88.127485,30.741447],[-88.127809,30.741395],[-88.128057,30.741354],[-88.128303,30.741314],[-88.128523,30.741277],[-88.12868,30.741249],[-88.128877,30.741213],[-88.129051,30.74118],[-88.129196,30.741152],[-88.129351,30.741118],[-88.129429,30.7411],[-88.129507,30.741079],[-88.12957,30.741062],[-88.129657,30.741035],[-88.129733,30.74101],[-88.12983,30.740976],[-88.129934,30.740935],[-88.130045,30.740887],[-88.130175,30.740828],[-88.130271,30.740779],[-88.130404,30.740706],[-88.130489,30.740654],[-88.130607,30.740576],[-88.130706,30.740504],[-88.130808,30.740425],[-88.130907,30.740346],[-88.131029,30.74025],[-88.131152,30.740148],[-88.131271,30.740052],[-88.131386,30.739958],[-88.131507,30.73986],[-88.131618,30.739773],[-88.131731,30.739683],[-88.131842,30.739591],[-88.131943,30.739506],[-88.132126,30.73936],[-88.132246,30.739261],[-88.132341,30.739182],[-88.132473,30.739076],[-88.132566,30.738999],[-88.132734,30.738863],[-88.13287,30.738753],[-88.133011,30.738637],[-88.133163,30.738513],[-88.133349,30.738364],[-88.133494,30.738243],[-88.133568,30.73818],[-88.13367,30.738096],[-88.1338,30.737986],[-88.133929,30.737873],[-88.134052,30.737761],[-88.134187,30.737638],[-88.134295,30.73754],[-88.134375,30.737464],[-88.134474,30.737368],[-88.13463,30.737219],[-88.134764,30.737089],[-88.134851,30.736994],[-88.135026,30.736815],[-88.135117,30.73672],[-88.135211,30.736618],[-88.135293,30.736531],[-88.135386,30.736425],[-88.135451,30.736348],[-88.135508,30.736276],[-88.135562,30.736201],[-88.135617,30.736119],[-88.135665,30.736037],[-88.135702,30.735961],[-88.13574,30.735878],[-88.135778,30.735772],[-88.135815,30.735652],[-88.135861,30.735483],[-88.135916,30.735259],[-88.135946,30.73514],[-88.136003,30.734895],[-88.13606,30.734662],[-88.136106,30.734482],[-88.136152,30.734293],[-88.136193,30.734115],[-88.136235,30.73391],[-88.136264,30.733754],[-88.136282,30.733621],[-88.136304,30.733441],[-88.136313,30.733312],[-88.136321,30.733103],[-88.136323,30.732956],[-88.136319,30.732683],[-88.136309,30.732458],[-88.136301,30.732264],[-88.13629,30.731981],[-88.136283,30.731762],[-88.136275,30.731519],[-88.136262,30.731154],[-88.136251,30.730828],[-88.136247,30.730594],[-88.13624,30.730347],[-88.136232,30.730142],[-88.13623,30.73002],[-88.136224,30.729878],[-88.13622,30.729688],[-88.136211,30.729404],[-88.136205,30.729143],[-88.136197,30.728916],[-88.13619,30.728696],[-88.136177,30.728474],[-88.136167,30.728194],[-88.136158,30.727943],[-88.136151,30.727669],[-88.136147,30.727423],[-88.136146,30.727202],[-88.136149,30.727029],[-88.136151,30.726858],[-88.136157,30.726651],[-88.136161,30.726376],[-88.136163,30.726128],[-88.136164,30.725844],[-88.136167,30.725572],[-88.136164,30.725318],[-88.136159,30.725085],[-88.13614,30.724638],[-88.136118,30.724255],[-88.136095,30.723822],[-88.136083,30.723563],[-88.136071,30.723161],[-88.136059,30.722664],[-88.136056,30.722224],[-88.136062,30.721896],[-88.136078,30.721565],[-88.136093,30.72123],[-88.136111,30.720908],[-88.13612,30.720527],[-88.136121,30.720172],[-88.136113,30.719843],[-88.136106,30.719487],[-88.136099,30.719248],[-88.136101,30.718929],[-88.136104,30.718792],[-88.136117,30.718637],[-88.136126,30.718554],[-88.13615,30.718471],[-88.136194,30.718375],[-88.136261,30.718437],[-88.136446,30.718573],[-88.136579,30.718667],[-88.13671,30.718751],[-88.136846,30.718833],[-88.136979,30.718902],[-88.137137,30.718979],[-88.137278,30.719042],[-88.137451,30.719109],[-88.137627,30.719169],[-88.137789,30.719215],[-88.13794,30.719255],[-88.138076,30.719286],[-88.138215,30.719312],[-88.138222,30.719313],[-88.138393,30.719336],[-88.138544,30.719353],[-88.138718,30.719371],[-88.138825,30.719378]]]}
我只是通过以下方式将其添加到 map 中:
geoJsonObject = new JSONObject(response);
GeoJsonLayer layer = new GeoJsonLayer(getMap(), geoJsonObject);
layer.addLayerToMap();
但是,因为 KVP 数据中没有提供“边界”,所以每当我尝试执行 layer.getBoundingBox()
时,我总是得到 null 的返回值
。有没有办法在我知道坐标后自己生成边界框?
最佳答案
查看 GeoJsonLayer.java 的来源和 GeoJsonParser.java很明显,没有计算边界框的代码。即使是 parseFeatureCollection()如果边界框在 GeoJSON 数据中,则该方法只解析边界框。
但是边界框是一个 LatLngBounds对象和类有一个嵌套的 Builder可用于构建 LatLngBounds
对象的类:
// Get the bounding box builder.
LatLngBounds.Builder builder = LatLngBounds.builder();
// Get the coordinates
for (GeoJsonFeature feature : layer.getFeatures()) {
if (feature.hasGeometry()) {
GeoJsonGeometry geometry = feature.getGeometry();
List<? extends List<LatLng>> lists =
((GeoJsonPolygon) geometry).getCoordinates();
// Feed the coordinates to the builder.
for (List<LatLng> list : lists) {
for (LatLng latLng : list) {
builder.include(latLng);
}
}
}
}
// Assign the builder's return value to a bounding box.
LatLngBounds bb = builder.build();
因此,如果您只有 GeoJsonPolygons
可以绘制,那么获取边界框并不是那么麻烦。
要获得更完整的解决方案,您必须构建更精细的机制来从任何 GeoJSON geometry object type 中提取坐标.它们都是 GeoJsonGeometry 的实现界面。首先要区分GeoJsonGeometryCollection以及所有其他的:
private LatLngBounds getLatLngBoundingBox(GeoJsonLayer layer) {
List<LatLng> coordinates = new ArrayList<>();
for (GeoJsonFeature feature : layer.getFeatures()) {
if (feature.hasGeometry()) {
GeoJsonGeometry geometry = feature.getGeometry();
if (geometry.getType().equals("GeometryCollection")) {
List<GeoJsonGeometry> geometries =
((GeoJsonGeometryCollection)geometry).getGeometries();
for (GeoJsonGeometry geom : geometries) {
coordinates.addAll(getCoordinatesFromGeometry(geom));
}
}
else {
coordinates.addAll(getCoordinatesFromGeometry(geometry));
}
}
}
// Get the bounding box builder.
LatLngBounds.Builder builder = LatLngBounds.builder();
// Feed the coordinates to the builder.
for (LatLng latLng : coordinates) {
builder.include(latLng);
}
LatLngBounds boundingBoxFromBuilder = builder.build();
//return boundingBox;
return boundingBoxFromBuilder;
}
提取坐标的实际代码(可能有错误)类似于:
private List<LatLng> getCoordinatesFromGeometry(GeoJsonGeometry geometry) {
List<LatLng> coordinates = new ArrayList<>();
// GeoJSON geometry types:
// http://geojson.org/geojson-spec.html#geometry-objects
switch (geometry.getType()) {
case "Point":
coordinates.add(((GeoJsonPoint) geometry).getCoordinates());
break;
case "MultiPoint":
List<GeoJsonPoint> points = ((GeoJsonMultiPoint) geometry).getPoints();
for (GeoJsonPoint point : points) {
coordinates.add(point.getCoordinates());
}
break;
case "LineString":
coordinates.addAll(((GeoJsonLineString) geometry).getCoordinates());
break;
case "MultiLineString":
List<GeoJsonLineString> lines =
((GeoJsonMultiLineString) geometry).getLineStrings();
for (GeoJsonLineString line : lines) {
coordinates.addAll(line.getCoordinates());
}
break;
case "Polygon":
List<? extends List<LatLng>> lists =
((GeoJsonPolygon) geometry).getCoordinates();
for (List<LatLng> list : lists) {
coordinates.addAll(list);
}
break;
case "MultiPolygon":
List<GeoJsonPolygon> polygons =
((GeoJsonMultiPolygon) geometry).getPolygons();
for (GeoJsonPolygon polygon : polygons) {
for (List<LatLng> list : polygon.getCoordinates()) {
coordinates.addAll(list);
}
}
break;
}
return coordinates;
}
然后您将使用如下代码:
LatLngBounds bb = getLatLngBoundingBox(layer);
关于android - 为 GeoJSON 数据生成 BoundingBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37486951/
我正在尝试使用以下 keytool 命令为我的应用程序生成 keystore : keytool -genkey -alias tomcat -keystore tomcat.keystore -ke
编辑:在西里尔正确解决问题后,我注意到只需将生成轴的函数放在用于生成标签的函数下面就可以解决问题。 我几乎读完了 O'Reilly 书中关于 D3.js 的教程,并在倒数第二页上制作了散点图,但是当添
虽然使用 GraphiQL 效果很好,但我的老板要求我实现一个用户界面,用户可以在其中通过 UI 元素(例如复选框、映射关系)检查呈现给他们的元素并获取数据,这样做将为该人生成 graphql 输入,
我尝试在 Netbean 6.8 中使用 ws-import 生成 Java 类。我想重新生成 jax-ws,因为在 ebay.api.paypalapi 包中发现了一个错误(我认为该错误是由于 Pa
我有一个 perl 脚本,它获取系统日期并将该日期写入文件名。 系统日期被分配给 TRH1 变量,然后它被设置为一个文件名。 $TRH1 =`date + %Y%m%d%H%M`; print "TR
我是 Haskell 的新手,需要帮助。我正在尝试构建一种必须具有某种唯一性的新数据类型,因此我决定使用 UUID 作为唯一标识符: data MyType = MyType { uuid ::
我制作了一个脚本,它可以根据 Mysql 数据库中的一些表生成 XML。 该脚本在 PHP 中运行。 public function getRawMaterials($apiKey, $format
所以这是我的项目中的一个问题。 In this task, we will use OpenSSL to generate digital signatures. Please prepare a f
我在 SAS LIFEREG 中有一个加速故障时间模型,我想绘制它。因为 SAS 在绘图方面非常糟糕,我想实际重新生成 R 中曲线的数据并将它们绘制在那里。 SAS 提出了一个尺度(在指数分布固定为
我正在为 Django 后端制作一个样板,并且我需要能够使它到达下一个下载它的人显然无法访问我的 secret key 的地方,或者拥有不同的 key 。我一直在研究一些选项,并在这个过程中进行了实验
我正在创建一个生成采购订单的应用程序。我可以根据用户输入的详细信息创建文本文件。我想生成一个看起来比普通文本文件好得多的 Excel。有没有可以在我的应用程序中使用的开源库? 最佳答案 目前还没有任何
我正在尝试使用 ScalaCheck 为 BST 创建一个 Gen,但是当我调用 .sample 方法时,它给了我 java.lang.NullPointerException。我哪里错了? seal
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我尝试编写一些代码,例如(在verilog中): parameter N = 128; if (encoder_in[0] == 1) begin 23 binary_out = 1;
我正忙于在 Grails 项目中进行从 MySQL 到 Postgres 的相当复杂的数据迁移。 我正在使用 GORM 在 PostGres 中生成模式,然后执行 MySQL -> mysqldump
如何使用纯 XSLT 生成 UUID?基本上是寻找一种使用 XSLT 创建独特序列的方法。该序列可以是任意长度。 我正在使用 XSLT 2.0。 最佳答案 这是一个good example 。基本上,
我尝试安装.app文件,但是当我安装并单击“同步”(在iTunes中)时,我开始在设备上开始安装,然后停止,这是一个问题,我不知道在哪里,但我看到了我无法解决的奇怪的事情: 最佳答案 似乎您没有在Xc
自从我生成 JavaDocs 以来已经有一段时间了,我确信这些选项在过去 10 年左右的时间里已经得到了改进。 我能否得到一些有关生成器的建议,该生成器将输出类似于 .Net 文档结构的 JavaDo
我想学习如何生成 PDF,我不想使用任何第三方工具,我想自己用代码创建它。到目前为止,我所看到的唯一示例是我通过在第 3 方 dll 上打开反射器查看的代码,以查看发生了什么。不幸的是,到目前为止我看
我正在从 Epplus 库生成 excel 条形图。 这是我成功生成的。 我的 table 是这样的 Mumbai Delhi Financial D
我是一名优秀的程序员,十分优秀!