通信人家园

标题: 求批量添加经纬度到谷歌地图  [查看完整版帖子] [打印本页]

时间:  2016-10-8 03:13
作者: zmy57818448     标题: 求批量添加经纬度到谷歌地图

根据网上的办法,借助excel和global mappar来添加坐标到谷歌,格式和什么的都和前面的一样,就是导入不正确,如果只是经纬度和地点是能成功,但加了其他就不行了。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
        <name>电杆-闽侯.KML</name>
        <visibility>0</visibility>
        <Style id="POINTSTYLE13">
                <IconStyle>
                        <color>ffff0000</color>
                        <scale>0.5</scale>
                        <Icon>
                                <href></href>
                        </Icon>
                </IconStyle>
                <LabelStyle>
                        <color>40ffffff</color>
                </LabelStyle>
        </Style>
        <Placemark>


时间:  2016-10-8 08:37
作者: 刘智慧

很简单,1个软件解决,我以前经常搞,不过现在不用了,你百度搜下吧,就是excel转KML文件工具,可能114论坛里都有
时间:  2016-10-8 15:10
作者: ml3701

'临时写了一个EXCEL宏可以用,将宏拷贝进VBA中
'数据量根据标志情况输入
'Sheet1中B列是标识的注释
'Sheet1中H列是经度,I列是纬度,经纬度是十进制小数表示
'Sheet1中第一行是列的说明,“标识”,“经纬度”
'执行宏,Sheet2中生成内容拷入记事本后另存为kml文件,另存时编码选择为UTF-8
Sub kml生成()
    数据量 = 100     
    标志 = 1
    Sheet2.Cells(标志, 1) = "<?xml version=" & """1.0""" & " encoding=" & """UTF-8""" & "?>"
    标志 = 2
    Sheet2.Cells(标志, 1) = "<kml xmlns=""" & "http://www.opengis.net/kml/2.2""" & ">"
    标志 = 3
    Sheet2.Cells(标志, 1) = "<Document>"
    标志 = 标志 + 1
    Sheet2.Cells(标志, 1) = "<name> " & Sheet2.Name & ".kml" & " </name>"
    For i = 1 To 数据量
        位置1 = Sheet1.Cells(i + 1, 2)
        循环1 = i + 1
        位置0 = Sheet1.Cells(i + 1, 2)
        循环0 = i + 1
        For j = i To 数据量
            位置2 = Sheet1.Cells(j + 1, 2)
            循环2 = j + 1
            If 位置0 <> 位置2 Then 位置3 = 位置2: 循环3 = 循环2: Exit For
        Next j
        
        If 循环2 <= 数据量 Then i = 循环2 - 2
        
        标志 = 标志 + 1
        Sheet2.Cells(标志, 1) = "<Placemark>"
        标志 = 标志 + 1
        Sheet2.Cells(标志, 1) = "<name>" & 位置0 & "</name>"
        标志 = 标志 + 1
        Sheet2.Cells(标志, 1) = "<LineString>"
        标志 = 标志 + 1
        Sheet2.Cells(标志, 1) = "<coordinates>"
        For k = 循环0 To 循环3 - 1
            标志 = 标志 + 1
            Sheet2.Cells(标志, 1) = Sheet1.Cells(k, 8) & "," & Sheet1.Cells(k, 9) & "," & Sheet1.Cells(k, 10)
        Next k
        标志 = 标志 + 1
        Sheet2.Cells(标志, 1) = "</coordinates>"
        标志 = 标志 + 1
        Sheet2.Cells(标志, 1) = "</LineString>"
        标志 = 标志 + 1
        Sheet2.Cells(标志, 1) = "</Placemark>"
      

        If 位置3 = "" Then Exit For

    Next i
   
    For i = 1 To 数据量
        If Sheet1.Cells(i + 1, 3) <> "" Then
            标志 = 标志 + 1
            Sheet2.Cells(标志, 1) = "<Placemark>"
            标志 = 标志 + 1
            Sheet2.Cells(标志, 1) = "<name>" & Sheet1.Cells(i + 1, 3) & "</name>"
            标志 = 标志 + 1
            Sheet2.Cells(标志, 1) = "<Point>"
            标志 = 标志 + 1
            Sheet2.Cells(标志, 1) = "<coordinates>"
            标志 = 标志 + 1
            Sheet2.Cells(标志, 1) = Sheet1.Cells(i + 1, 8) & "," & Sheet1.Cells(i + 1, 9) & "," & Sheet1.Cells(i + 1, 10)
            标志 = 标志 + 1
            Sheet2.Cells(标志, 1) = "</coordinates>"
            标志 = 标志 + 1
            Sheet2.Cells(标志, 1) = "</Point>"
            标志 = 标志 + 1
            Sheet2.Cells(标志, 1) = "</Placemark>"
        End If
      
    Next i
   
   
    标志 = 标志 + 1
    Sheet2.Cells(标志, 1) = "</Document>"
    标志 = 标志 + 1
    Sheet2.Cells(标志, 1) = "</kml>"

End Sub





通信人家园 (https://www.txrjy.com/) Powered by C114