2015-10-16 2 views
0

Я создаю векторные слои в формате KML. У меня есть источники в Dropbox, чтобы избежать CORS, но когда я загружаю их на карту, у них нет никаких функций. Любые идеи по этому вопросу будут очень оценены.KML слой не отображается

Пожалуйста, смотрите ниже, как я это делаю.

var layers = [ 

wms_bmid_pipes = new ol.layer.Vector({ 
      source: new ol.source.Vector({ 
      url: 'https://dl.dropboxusercontent.com/s/ea4qzzuyk5i2mxt /geid_ws-bmid-pipes.kml?dl=0', 
      format: new ol.format.KML() 
      }) 
     }) 
     ]; 

Поскольку слой не отображается на карте, я побежал код ниже, чтобы проверить, сколько функций он имеет (этот код приходит с веб-сайта открытых слоев). Оказывается, в консоли я получаю «Count after change: 0», что означает, что нет никаких функций.

wms_bmid_pipes.getSource().on('change', function(evt){ 
     var source = evt.target; 
      if (source.getState() === 'ready') { 
       var numFeatures = source.getFeatures().length; 
       console.log("Count after change: " + numFeatures); 
      } 
    }); 

Дело в том, что wms_bmid_pipes содержит следующее:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:ns2="http://www.google.com/kml/ext/2.2" xmlns:ns3="http://www.w3.org/2005/Atom" xmlns:ns4="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"> 
<Document> 
    <LookAt> 
     <longitude>-119.3597596329119</longitude> 
     <latitude>49.89850519575446</latitude> 
     <altitude>19983.5008834143</altitude> 
     <heading>0.0</heading> 
     <tilt>0.0</tilt> 
     <range>16147.716881798802</range> 
     <altitudeMode>clampToGround</altitudeMode> 
    </LookAt> 
    <NetworkLink> 
     <name>bmid-pipes</name> 
     <visibility>1</visibility> 
     <open>1</open> 
     <LookAt> 
      <longitude>-119.3597596329119</longitude> 
      <latitude>49.89850519575446</latitude> 
      <altitude>19983.5008834143</altitude> 
      <heading>0.0</heading> 
      <tilt>0.0</tilt> 
      <range>16147.716881798802</range> 
      <altitudeMode>clampToGround</altitudeMode> 
     </LookAt> 
     <Url> 
      <href>http://localhost:8080/geoserver/geid_ws/wms?service=wms&amp;request=GetMap&amp;version=1.1.1&amp;format=application/vnd.google-earth.kml+xml&amp;layers=geid_ws:bmid-pipes&amp;styles=line&amp;height=2048&amp;width=2048&amp;transparent=false&amp;srs=EPSG:4326&amp;format_options=AUTOFIT:true;KMATTR:true;KMPLACEMARK:false;KMSCORE:40;MODE:refresh;SUPEROVERLAY:false</href> 
      <refreshInterval>0.0</refreshInterval> 
      <viewRefreshMode>onStop</viewRefreshMode> 
      <viewRefreshTime>1.0</viewRefreshTime> 
      <viewBoundScale>1.0</viewBoundScale> 
     </Url> 
    </NetworkLink> 
</Document> 
</kml> 

ответ

0

KmlLayer требует KML быть общедоступными. http://localhost:8080 не является общедоступным.

<Url> 
    <href>http://localhost:8080/geoserver/geid_ws/wms?service=wms&amp;request=GetMap&amp;version=1.1.1&amp;format=application/vnd.google-earth.kml+xml&amp;layers=geid_ws:bmid-pipes&amp;styles=line&amp;height=2048&amp;width=2048&amp;transparent=false&amp;srs=EPSG:4326&amp;format_options=AUTOFIT:true;KMATTR:true;KMPLACEMARK:false;KMSCORE:40;MODE:refresh;SUPEROVERLAY:false</href> 
    <refreshInterval>0.0</refreshInterval> 
    <viewRefreshMode>onStop</viewRefreshMode> 
    <viewRefreshTime>1.0</viewRefreshTime> 
    <viewBoundScale>1.0</viewBoundScale> 
</Url> 
Смежные вопросы