Xml 当使用Perl解析KML以外的坐标时,如何解释多重几何多边形?
我编写了一个perl脚本,从一些KML文件中提取坐标。像这样:Xml 当使用Perl解析KML以外的坐标时,如何解释多重几何多边形?,xml,perl,parsing,kml,Xml,Perl,Parsing,Kml,我编写了一个perl脚本,从一些KML文件中提取坐标。像这样: if ($start ne 6) { $sheet = substr($line,$start,$end-$start); } $start = index($line,"<coordinates>") + 13; $end = index($line,"</coordinates>"); $coords = substr($line,$start,$end-$start); i
if ($start ne 6)
{
$sheet = substr($line,$start,$end-$start);
}
$start = index($line,"<coordinates>") + 13;
$end = index($line,"</coordinates>");
$coords = substr($line,$start,$end-$start);
if ($start ne 12)
{
@values = split (' ',$coords);
foreach (@values) {}
my (@lat, @long);
( $lat[@lat], $long[@long] )
= split /,/ for @values;
if($start ne 6)
{
$sheet=substr($line,$start,$end-$start);
}
$start=索引($line,“”)+13;
$end=索引($line,“”);
$coords=substr($line,$start,$end-$start);
如果($start ne 12)
{
@值=拆分(“”,$coords);
foreach(@values){}
我的(@lat,@long);
($lat[@lat],$long[@long])
=拆分/,/表示@值;
这将从此行提取坐标:
-4.7999999989183125,54.47999999988144478-5.399999999887073,54.479999999998084068-5.40999999614521,54.73999998345262-4.80999999103597,54.74999998414239-4.79999989183125,54.4799999814478
但是当我有多个环形多边形在一行中多次重复
标记时,它只检索第一组坐标(正如您所期望的)
所以我的问题是:有没有一种方法可以修改我已经拥有的来适应多多边形,或者我必须使用不同的解析技术
谢谢。我将索引替换为反向索引,然后删除<和>之间的任何内容:
while ( <INPUT> ) {
chomp();
$line = $_;
$start = index($line,"SHEET") + 7;
$end = index($line,"</SimpleData>");
if ($start ne 6)
{
$sheet = substr($line,$start,$end-$start);
}
$start = index($line,"<coordinates>") + 13;
$end = rindex($line,"</coordinates>");
$coords = substr($line,$start,$end-$start);
$coords =~ s/<.*>//;
if ($start ne 12)
{
@values = split (' ',$coords);
while(){
chomp();
$line=$\;
$start=索引($line,“SHEET”)+7;
$end=索引($line,“”);
如果($start ne 6)
{
$sheet=substr($line,$start,$end-$start);
}
$start=索引($line,“”)+13;
$end=rindex($line,“”);
$coords=substr($line,$start,$end-$start);
$coords=~s//;
如果($start ne 12)
{
@值=拆分(“”,$coords);