Ios 带半径的多段线周围的多边形?

Ios 带半径的多段线周围的多边形?,ios,swift,google-maps,mapbox,Ios,Swift,Google Maps,Mapbox,我在围绕多段线绘制多边形时遇到问题。 我有每个多段线点的坐标,我想得到这个多段线周围多边形的坐标。 我使用MapBox的地图。 有什么想法吗?我没有找到解决办法。 好像是这样的。 我需要得到绘制直线周围多边形的坐标 如果您希望在浏览器中围绕多段线绘制多边形,我建议使用turf.js。在这种情况下,草皮应该很有效 下面是Mapbox GL JS地图上的一个示例 var行={ “类型”:“功能”, “属性”:{}, “几何学”:{ “类型”:“行字符串”, “坐标”:[ [-122.4044752

我在围绕多段线绘制多边形时遇到问题。 我有每个多段线点的坐标,我想得到这个多段线周围多边形的坐标。 我使用MapBox的地图。 有什么想法吗?我没有找到解决办法。 好像是这样的。 我需要得到绘制直线周围多边形的坐标


如果您希望在浏览器中围绕多段线绘制多边形,我建议使用turf.js。在这种情况下,草皮应该很有效

下面是Mapbox GL JS地图上的一个示例

var行={
“类型”:“功能”,
“属性”:{},
“几何学”:{
“类型”:“行字符串”,
“坐标”:[
[-122.40447521209718,
37.79367718768535
],
[-122.40803718566895,
37.79171022624846
],
[-122.40769386291502,
37.79096412372944
],
[-122.40662097930908,
37.789641468930114
],
[-122.40941047668457,
37.789675383451495
],
[-122.40992546081543,
37.78875968591083
],
[-122.40962505340575,
37.78791180770003
]
]
}
};
mapboxgl.accessToken='pk.eyj1ijoibwwwc2ftiwiysi6imnqnzi4odr4djbkzmczmnjzzjg3exzhcdgifq.5xm2或RvuO6YvirBVeiOg';
var map=new mapboxgl.map({
容器:“映射”,
风格:'mapbox://styles/mapbox/light-v9',
缩放:15,
中间:[-122.4067,37.7899]
});
map.on('load',function()){
map.addLayer({
“id”:“路线”,
“类型”:“行”,
“来源”:{
“类型”:“geojson”,
“数据”:行
}
});
var polygon=草皮缓冲区(线,50,'米');
map.addLayer({
“id”:“poly”,
“类型”:“填充”,
“来源”:{
“类型”:“geojson”,
“数据”:多边形
},
“布局”:{},
“油漆”:{
“填充颜色”:“#d9d838”,
“填充不透明度”:0.3
}
});
});
正文{
保证金:0;
填充:0;
}
#地图{
位置:绝对位置;
排名:0;
底部:0;
宽度:100%;
}

如果您希望在浏览器中围绕多段线绘制多边形,我建议使用turf.js。在这种情况下,草皮应该很有效

下面是Mapbox GL JS地图上的一个示例

var行={
“类型”:“功能”,
“属性”:{},
“几何学”:{
“类型”:“行字符串”,
“坐标”:[
[-122.40447521209718,
37.79367718768535
],
[-122.40803718566895,
37.79171022624846
],
[-122.40769386291502,
37.79096412372944
],
[-122.40662097930908,
37.789641468930114
],
[-122.40941047668457,
37.789675383451495
],
[-122.40992546081543,
37.78875968591083
],
[-122.40962505340575,
37.78791180770003
]
]
}
};
mapboxgl.accessToken='pk.eyj1ijoibwwwc2ftiwiysi6imnqnzi4odr4djbkzmczmnjzzjg3exzhcdgifq.5xm2或RvuO6YvirBVeiOg';
var map=new mapboxgl.map({
容器:“映射”,
风格:'mapbox://styles/mapbox/light-v9',
缩放:15,
中间:[-122.4067,37.7899]
});
map.on('load',function()){
map.addLayer({
“id”:“路线”,
“类型”:“行”,
“来源”:{
“类型”:“geojson”,
“数据”:行
}
});
var polygon=草皮缓冲区(线,50,'米');
map.addLayer({
“id”:“poly”,
“类型”:“填充”,
“来源”:{
“类型”:“geojson”,
“数据”:多边形
},
“布局”:{},
“油漆”:{
“填充颜色”:“#d9d838”,
“填充不透明度”:0.3
}
});
});
正文{
保证金:0;
填充:0;
}
#地图{
位置:绝对位置;
排名:0;
底部:0;
宽度:100%;
}

我找到了解决方案,伙计们!这真的很困难 根据关于草皮的最后提示:)

我找到了豆荚“迅捷草皮”

var coordsPointer=UnsafeMutablePointer.allocate(容量:Int(polyline.pointCount))
polyline.getCoordinations(坐标指针,范围:NSMakeRange(0,Int(polyline.pointCount)))
//拯救coords
变量lineCoords:[CLLocationCoordinate2D]=[]

因为我在0中找到了解决方案,伙计们!这真的很困难 根据关于草皮的最后提示:)

我找到了豆荚“迅捷草皮”

var coordsPointer=UnsafeMutablePointer.allocate(容量:Int(polyline.pointCount))
polyline.getCoordinations(坐标指针,范围:NSMakeRange(0,Int(polyline.pointCount)))
//拯救coords
变量lineCoords:[CLLocationCoordinate2D]=[]

对于0中的i,你所说的多段线周围的多边形是什么意思??Sry无法理解你的意思。你是说“突出”而不是“缩进”吗?“缩进”就是向内移动,听起来像是要向外移动。你是如何处理末端的?它们应该是正方形、圆形、角形的吗?也可能是一张用来说明的图纸和一些您已经或已经尝试过的代码。另外,您正在使用哪些类:?多边形的最终用途是什么?我使用MGLPolyline和MGLPolygon。它可以是正方形,我只想找到简单的解决方案。我有一个类似的要求,但还没有找到一个好的解决方案。我想定义一组覆盖路径的相邻矩形,以便在没有电话信号的情况下下载相应的离线地图盒贴片进行导航。最后,我用谷歌地图绘制了路径,然后拖出一系列矩形,并在坐标上复制。工作,但劳动密集型。你说的多段线周围的多边形是什么意思??Sry无法理解你的意思。你是说“突出”而不是“缩进”吗?“缩进”就是向内移动,听起来像是要向外移动。你是如何处理末端的?它们应该是正方形、圆形、角形的吗?也可能是一张用来说明的图纸和一些您已经或已经尝试过的代码。另外,您正在使用哪些类:?多边形的最终用途是什么?我使用MGLPolyline和MGLPolygon。它可以是正方形,我只想找到简单的解决方案。我有一个类似的要求,但还没有找到一个好的解决方案。我想定义一组覆盖路径的相邻矩形,以便
var coordsPointer = UnsafeMutablePointer<CLLocationCoordinate2D>.allocate(capacity: Int(polyline.pointCount))
    polyline.getCoordinates(coordsPointer, range: NSMakeRange(0, Int(polyline.pointCount)))

    // save coords
    var lineCoords: [CLLocationCoordinate2D] = []
    for i in 0..<polyline.pointCount {
        lineCoords.append(coordsPointer[Int(i)])
    }

    let lineString:LineString = LineString(geometry: lineCoords)

    let bufferLineString = SwiftTurf.buffer(lineString, distance: width, units: .Meters)

    let outer = bufferLineString!.geometry![0]
    let interiors = bufferLineString?.geometry![1..<bufferLineString!.geometry.count].map({ coords in
        return MGLPolygon(coordinates: coords, count: UInt(coords.count))
    })
    // This polygon is solution
    self.currentBufferPolygon = MGLPolygon(coordinates: outer, count: UInt(outer.count), interiorPolygons: interiors)
    mapView.addAnnotation(self.currentBufferPolygon!)