在Displaying Overlays on a Map位置感知规划指南的iOS Developer Library部分,有一个示例“显示覆盖科罗拉多州的填充和描边覆盖。”
// Define an overlay that covers Colorado.
CLLocationCoordinate2D points[4];
points[0] = CLLocationCoordinate2DMake(41.000512, -109.050116);
points[1] = CLLocationCoordinate2DMake(41.002371, -102.052066);
points[2] = CLLocationCoordinate2DMake(36.993076, -102.041981);
points[3] = CLLocationCoordinate2DMake(36.99892, -109.045267);
MKPolygon* poly = [MKPolygon polygonWithCoordinates:points count:4];
poly.title = @"Colorado";
[map addOverlay:poly];
问题 美国所有50个州的坐标数据是否都可以轻松自由地使用相同的纬度/经度数据?
答案 0 :(得分:8)
在谷歌搜索我们状态大纲地理坐标,找到stackoverflow问题Geographical boundaries of states/provinces -> Google Maps Polygon,其答案链接到XML for US state polygons(下面的科罗拉多数据)。
<state name="Colorado" colour="#880000">
<point lat="37.0004" lng="-109.0448"/>
<point lat="36.9949" lng="-102.0424"/>
<point lat="41.0006" lng="-102.0534"/>
<point lat="40.9996" lng="-109.0489"/>
<point lat="37.0004" lng="-109.0448"/>
</state>
我还发现US State and Country border coordinates带有NationalAtlas.com, First Level Administrative Boundaries (States), United States, 2005的链接,但该数据看起来比我需要的更准确。
另一个数据来源是The State Border Data Set,它链接到一个文件,其中包含“构成州边界的线段的地理坐标”(下面的科罗拉多数据)。
bordindx, st1st2, milemark, lat, long, st1, st2,
19 ,CO-NE ,0 ,40.003 ,102.051 ,08 ,31 ,
19 ,CO-NE ,68.95 ,41.002 ,102.051 ,08 ,31 ,
19 ,CO-NE ,173.19 ,41.001 ,104.053 ,08 ,31 ,
20 ,CO-NM ,0 ,36.999 ,109.044 ,08 ,35 ,
20 ,CO-NM ,333 ,37 ,103.001 ,08 ,35 ,
21 ,CO-OK ,0 ,37 ,103.001 ,08 ,40 ,
21 ,CO-OK ,52.89 ,36.993 ,102.041 ,08 ,40 ,
22 ,CO-UT ,0 ,41 ,109.049 ,08 ,49 ,
22 ,CO-UT ,276.11 ,36.999 ,109.044 ,08 ,49 ,
23 ,CO-WY ,0 ,41.001 ,104.053 ,08 ,56 ,
23 ,CO-WY ,260.18 ,41 ,109.049 ,08 ,56 ,
更新:我在一个kjhsoftware/us-state-polygons github repo上放置了一个精简版的states.xml以及Objective-C代码。