OpenLayers-Geometry格式转换

Geometry有多种格式,例如WKT, GML, KML等格式。OpenLayers提供Geometry格式的转换方法,可以实现不同格式的Geometry的转换。

Geometry格式转换类位于OpenLayers.Format命名空间下。本文以WKT--> GML的转换来说明OpenLayers Geometry格式转换方法的使用。

1. 定义WKT Geometry

var wkt  = "POLYGON((6.027164 49.524078,6.088064 49.680508,5.948726 49.772232,5.941587 49.91943,6.03742 50.064381,6.147439 50.130783,6.211109 50.166946,6.312177 50.134426,6.340263 49.998951,6.525142 49.858585,6.734586 49.815399,6.715019 49.685902,6.603117 49.621159,6.636707 49.462303,6.57162 49.490456,6.315996 49.495625,6.02716449.524078))”;

2. 创建WKT Format对象

var wkt_c = new OpenLayers.Format.WKT();

3. 利用wkt_c读入wkt数据,并转换为OpenLayers的Geometry对象

var geometry = new wkt_c.read(wkt);

4. 创建GMK Format对象

var gml_c = new OpenLayers.Format.GML();

5. 利用gml_c对象将geometry写为gml格式

var gml = new gml_c.write(geometry);

 

下面是一个OpenLayers格式转换器代码

复制代码
 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 2 <HTML>  3 <HEAD>  4 <TITLE> OpenLayers: Convert Data Format </TITLE>  5 <META NAME="Generator" CONTENT="EditPlus">  6 <META NAME="Author" CONTENT="">  7 <META NAME="Keywords" CONTENT="">  8 <META NAME="Description" CONTENT="">  9 <script src="./OpenLayers-2.10/lib/OpenLayers.js"></script> 10 <script type="text/javascript"> 11 function onConvertClick() 12  { 13 var inp = document.getElementById("input"); 14 var out = document.getElementById("output"); 15 var selector = document.getElementById("format"); 16 var format = selector.value; 17 18 var wkt = inp.value; 19 var wkt_c = new OpenLayers.Format.WKT(); 20 var geometry = wkt_c.read(wkt); 21 22 var convertor = createConvertor(format); 23 var text = convertor.write(geometry); 24 25  out.value = text; 26  } 27 28 function createConvertor(type) 29  { 30 var convertor = null; 31 switch(type) 32  { 33 case "GML": 34  convertor = new OpenLayers.Format.GML(); 35 break; 36 case "KML": 37  convertor = new OpenLayers.Format.KML(); 38 break; 39 case "GeoJSON": 40  convertor = new OpenLayers.Format.GeoJSON(); 41 break; 42  } 43 return convertor; 44  } 45 </script> 46 </HEAD> 47 48 <BODY> 49 <table> 50 <tr> 51 <td> 52 <SELECT NAME="format" id="format"> 53 <OPTION value="GML">GML</OPTION

转载于:https://www.cnblogs.com/hanhuibing/articles/4177622.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值