1

私は Google Earth の初心者です。気象データを地図上に視覚化するアプリを開発しようとしています。これは、ローカル GE で実行できる単純なコードです (別の場所からサンプルをコピーしただけです)。

<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <Style id="s1">
      <LineStyle>
        <color>7f0000ff</color>
        <width>4</width>
      </LineStyle>
      <PolyStyle>
        <color>7f0000ff</color>
        <colorMode>normal</colorMode>
        <fill>1</fill>
        <outline>1</outline>
      </PolyStyle>
    </Style>

    <name>All isolation countries</name>
    <description>All isolation countries</description>
    <Placemark>
      <styleUrl>#s1</styleUrl>
      <name>Indonesia</name>
    </Placemark>
    <Placemark>
      <styleUrl>#s1</styleUrl>
      <name>Ecuador</name>
      <Polygon>
      <tessellate>1</tessellate>
        <extrude>1</extrude>
        <altitudeMode>clampedToGround</altitudeMode>
        <outerBoundaryIs>
          <LinearRing>
            <coordinates>-90.61167907714844,-0.3755556046962738,0 -90.77166748046875,-0.344166785478592,0 -90.87222290039063,-0.2652778923511506,0 -90.79332733154297,-0.149444505572319,0 -90.77362060546876,-0.1550000011920929,0 -90.58556365966797,-0.2455555945634842,0 -90.55029296875,-0.3091666996479035,0 -90.61167907714844,-0.3755556046962738,0</coordinates>
          </LinearRing>
        </outerBoundaryIs>

      </Polygon>
    </Placemark>
    </Document>
    </kml>

これが私がHTMLに統合したコードです

<html>
<head>
  <title>Sample</title>
  <script type="text/javascript" src="https://www.google.com/jsapi"> </script>
  <script type="text/javascript">
    var ge;
    var placemark;
    var object;

    google.load("earth", "1");

    function init() {
      google.earth.createInstance('map3d', initCB, failureCB);
    }

    function initCB(instance) {
      ge = instance;
      ge.getWindow().setVisibility(true);


     var kmlString = ''
     + '<?xml version="1.0" encoding="UTF-8"?>'
     + '<kml xmlns="http://www.opengis.net/kml/2.2">'
     + '<Document>'
     + ' <Style id="s1">'
     + ' <LineStyle>'
     + '  <color>7f0000ff</color>'
       + ' <width>4</width>'
      +'</LineStyle>'
     +' <PolyStyle>'
      +'  <color>7f0000ff</color>'
       +' <colorMode>normal</colorMode>'
       +' <fill>1</fill>'
       +' <outline>1</outline>'
     +' </PolyStyle>'
    +'</Style>'
    +'<name>All isolation countries</name>'
    +'<description>All isolation countries</description>'
    +'<Placemark>'
     +' <styleUrl>#s1</styleUrl>'
     +' <name>Indonesia</name>'
    +'</Placemark>'
    +'<Placemark>'
     +' <styleUrl>#s1</styleUrl>'
      +'<name>Ecuador</name>'
      +'<Polygon>'
      +'<tessellate>1</tessellate>'
        +'<extrude>1</extrude>'
        +'<altitudeMode>clampedToGround</altitudeMode>'
        +'<outerBoundaryIs>'
          +'<LinearRing>'
            +'<coordinates>-90.61167907714844,-0.3755556046962738,0 -90.77166748046875,-0.344166785478592,0 -90.87222290039063,-0.2652778923511506,0 -90.79332733154297,-0.149444505572319,0 -90.77362060546876,-0.1550000011920929,0 -90.58556365966797,-0.2455555945634842,0 -90.55029296875,-0.3091666996479035,0 -90.61167907714844,-0.3755556046962738,0</coordinates>'
          +'</LinearRing>'
        +'</outerBoundaryIs>'
     +' </Polygon>'
    +'</Placemark>'
                         + '</Document>'
                         + '</kml>';

         var kmlObject = ge.parseKml(kmlString);
         ge.getFeatures().appendChild(kmlObject);
         ge.getView().setAbstractView(kmlObject.getAbstractView());
    }

    function failureCB(errorCode) {
    }

    google.setOnLoadCallback(init);
  </script>

</head>
<body>
  <div id="map3d" style="height: 400px; width: 600px;"></div>
</body>
</html>

誰か私にアイデアを教えてもらえますか?また、緯度、経度、高さのデータを大量に入力する必要がありますが、これらのファイルを読み取る方法はありますか?

4

2 に答える 2

1

JavaScript Maps API は、一般にアクセス可能な URL からの KMLのみを受け入れます。文字列やファイルを渡すことはできません。ローカルの KML ファイルを使用する必要がある場合は、KML を自分で解析し、Google Maps API を使用してシェイプを作成する必要があります。この優れた投稿をここで参照してください: Google Maps API と KML ファイル LocalHost 開発オプション

于 2013-01-22T15:44:05.373 に答える
0

マシューが言ったように、Google マップは KML のソースとなるリモート URI を使用する必要があるため、パブリック URI を含むファイルとして保存します。

GeoXML3は KML を読み取ってマップすることができ、この制限を受けません。

于 2014-02-19T07:43:59.037 に答える