當前位置: 首頁>>代碼示例>>Golang>>正文


Golang Geos.UnionPolygons方法代碼示例

本文整理匯總了Golang中github.com/omniscale/imposm3/geom/geos.Geos.UnionPolygons方法的典型用法代碼示例。如果您正苦於以下問題:Golang Geos.UnionPolygons方法的具體用法?Golang Geos.UnionPolygons怎麽用?Golang Geos.UnionPolygons使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/omniscale/imposm3/geom/geos.Geos的用法示例。


在下文中一共展示了Geos.UnionPolygons方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: mergeGeometries

// mergeGeometries
func mergeGeometries(g *geos.Geos, geoms []*geos.Geom, geomType string) []*geos.Geom {
	// intersections from multiple sub-polygons
	// try to merge them back to a single geometry
	if strings.HasSuffix(geomType, "Polygon") {
		polygons := flattenPolygons(g, geoms)
		polygon := g.UnionPolygons(polygons)
		if polygon == nil {
			return nil
		}
		g.DestroyLater(polygon)
		return []*geos.Geom{polygon}
	} else if strings.HasSuffix(geomType, "LineString") {
		linestrings := flattenLineStrings(g, geoms)
		linestrings = filterInvalidLineStrings(g, linestrings)
		if len(linestrings) == 0 {
			return nil
		}
		union := g.LineMerge(linestrings)
		for _, l := range union {
			g.DestroyLater(l)
		}
		return union
	} else if geomType == "Point" {
		if len(geoms) >= 1 {
			for _, p := range geoms {
				g.DestroyLater(p)
			}
			return geoms[0:1]
		}
		return nil
	} else {
		panic("unexpected geometry type" + geomType)
	}
}
開發者ID:Rachine,項目名稱:imposm3,代碼行數:35,代碼來源:limit.go


注:本文中的github.com/omniscale/imposm3/geom/geos.Geos.UnionPolygons方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。