[Geoserver-users] Publishing KML via Geoserver

I have KML files which I would like to serve out via Geoserver. Perhaps I am missing something, but I don’t see how to create a layer from a KML file – there only seems to be options to create layers from Shapefiles. All references to KML I have found on the web seem to relate to exporting KML, not importing it.

Can anyone point me in the right direction please?

On Wed, Oct 14, 2015 at 12:35 PM, Smart, Gary Export License Required - US
UTAS <Gary.Smart@anonymised.com> wrote:

I have KML files which I would like to serve out via Geoserver. Perhaps I
am missing something, but I don’t see how to create a layer from a KML file
– there only seems to be options to create layers from Shapefiles. All
references to KML I have found on the web seem to relate to exporting KML,
not importing it.

Can anyone point me in the right direction please?

There is no such a thing as publishing a KML as is, that's why you cannot
find it.
The closest thing we have is importing the KML into a target data store
(postgis, shapefile) from where we can publish using the importer extension.
However, that will make it lose its styles.

Adding the ability to publish from KML directly, using its native styling,
would indeed be nice. I've just added a page describing
what to do in case of feature requests, you can have a look at it:
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer

This one would be one of the complex ones, proposals and all, since we'd
need to start carrying around features with their own "native" style,
something
we don't have in the programming interface right now (SLD is all about
separating data from styling, KML is the polar opposite).

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

GeoWolf,

I've been trying to do this without success. Simple kml file:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2&quot;
xmlns:gx="http://www.google.com/kml/ext/2.2&quot;
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
xsi:schemaLocation="http://www.opengis.net/kml/2.2
https://developers.google.com/kml/schema/kml22gx.xsd&quot;&gt;
  <Placemark>
    <name>test</name>
    
    <LineString>
      <coordinates>-11310111.782622844,4001386.6167203914
-5283204.9763932675,3883979.3412743607</coordinates>
    </LineString>
  </Placemark>
</kml>

Using GeoServer Importer (same version as GepServer) and I've confirmed
Importer is working correctly by both using the interface to import
shapefiles and using the REST API to import a shapefile directory - all that
works.

So, in importer choosing the file, specifying an existing workspace and an
existing shapefile datastore, selecting next and the kml file shows-up in
"Recent Imports" as expected. Selecting the import and going to the "Import
#", seeing the layer, selecting the layer and choosing import and I get this
error:

java.io.IOException: Schema 'example' does not exist.
  at
org.geotools.data.store.ContentDataStore.ensureEntry(ContentDataStore.java:621)
  at
org.geotools.data.store.ContentDataStore.getFeatureSource(ContentDataStore.java:393)
  at
org.geotools.data.store.ContentDataStore.getFeatureSource(ContentDataStore.java:376)
  at
org.geotools.data.store.ContentDataStore.ensureFeatureStore(ContentDataStore.java:457)
  at
org.geotools.data.store.ContentDataStore.getFeatureWriterAppend(ContentDataStore.java:489)
  at org.geoserver.importer.Importer.loadIntoDataStore(Importer.java:1248)
  at org.geoserver.importer.Importer.doIndirectImport(Importer.java:991)
  at org.geoserver.importer.Importer.run(Importer.java:852)
  at org.geoserver.importer.Importer.run(Importer.java:802)
  at org.geoserver.importer.Importer$5.call(Importer.java:881)
  at org.geoserver.importer.Importer$5.call(Importer.java:875)
  at org.geoserver.importer.job.Job.call(Job.java:16)
  at java.util.concurrent.FutureTask.run(Unknown Source)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  at java.lang.Thread.run(Unknown Source)

Can't find anything anywhere on the internet that tells me what's wrong. I
believe I'm following the right procedure? I've tried creating a new
workspace with a new datastore, a workspace with a new but empty shapefile
datastore, and an existing workspace with a new datastore - all no good.

Help?

mabus00

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/Publishing-KML-via-Geoserver-tp5230033p5295325.html
Sent from the GeoServer - User mailing list archive at Nabble.com.