[Plugin] KML Tools (2.0.0-beta) — updated 31.05.2013
-
This plugin is unfortunately very error-prone because it was my second plugin and it uses RegExps to parse xml (I hope I find a better way to handle xml, rexml didn't prove to perform better). I'll take a look at this whern I'm at home!
-
You're using a webdialog for the import - you can use the XML parsing capabilities of the web-browser:
http://www.w3schools.com/xml/xml_parser.aspIf you use jQuery it's very simple:
http://stackoverflow.com/questions/649614/xml-parsing-in-javascript -
That sounds interesting. Javascript isn't the fastest either, but this strategy probably doesn't use the script language's string functions but the browser's compiled code.
I once ported the plugin (partly) to ReXML and ran performace tests (more reliable but 107% slower, ReXML is pure Ruby and I wanted to avoid gems). So I'll try it with this again. -
ReXML is one of the slowest XML solutions - but as you mention it's pure Ruby. The others require some binaries. I want a Ruby parser because some times I don't have a WebDialog UI for plugins that has use of XML.
-
@dawrightau said:
The plugin is working fine for some kml files but for some reason inst working with others.
Hi David,
I tried both files in a non-geolocated model and in a geolocated model (with terrain) and they both work for me (plugin version 1.4.6). I have no idea what could go wrong. When you open the Ruby Console before running th plugin, do there appear some error messages?
-
@thomthom said:
I got an KML file I'm trying to import, but I'm getting errors
I'm not sure what causes this problem. It looks like one point of a polygon could not be parsed (nil) or a polygon has less than 3 points. Off the bat I would have tried:
while a.length > 3 # replace line 754
return if outerLoop.length < 3 # insert after line 311
-
Thanks for getting back to me Aerilius,
I am using 1.4.9 being the version you updated to fix the part loading issue of mine in a previous post.
There is an error in the ruby console. This is the ruby console messages for the harack boundary file :
fetching elevation from url: http://api.geonames.org/astergdemJSON?formatted=true&lat=-30.4077328499&lng=152.0265933208&username=aerilius&style=full&callback=returnJson
kmlImport.rb: geonames returned 1098
Error: #<NoMethodError: undefined methodremove' for #<Sketchup::Materials:0xbfba0e4>> C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:740:in
color_to_su'
C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:738:ineach' C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:738:in
color_to_su'
C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:607:instyle' C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:170:in
run2'
C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:655:ineachp' (eval):48:in
each_with_index'
C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:653:ineach' C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:653:in
each_with_index'
C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:653:ineachp' C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:170:in
run2'
C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:151:infetch_alt' C:/Program Files/Google/Google SketchUp 8/Plugins/enjshape/shapes.rb:48:in
call'
C:/Program Files/Google/Google SketchUp 8/Plugins/enjshape/shapes.rb:48This is the ruby console message for the other file :
fetching elevation from url: http://api.geonames.org/astergdemJSON?formatted=true&lat=-30.40773285&lng=152.026593321&username=aerilius&style=full&callback=returnJson
kmlImport.rb: geonames returned 1098
Error: #<NoMethodError: undefined methodremove' for #<Sketchup::Materials:0xc11d030>> C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:740:in
color_to_su'
C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:738:ineach' C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:738:in
color_to_su'
C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:607:instyle' C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:170:in
run2'
C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:655:ineachp' (eval):740:in
each_with_index'
C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:653:ineach' C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:653:in
each_with_index'
C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:653:ineachp' C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:170:in
run2'
C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:151:infetch_alt' C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:740:in
call'
C:/Program Files/Google/Google SketchUp 8/Plugins/kmlTools/kmlImport.rb:740Hope this helps nut it out.
Regards
David
@aerilius said:
@dawrightau said:
The plugin is working fine for some kml files but for some reason inst working with others.
Hi David,
I tried both files in a non-geolocated model and in a geolocated model (with terrain) and they both work for me (plugin version 1.4.6). I have no idea what could go wrong. When you open the Ruby Console before running th plugin, do there appear some error messages? -
Also a question
When one kml file (that imports ok) has been imported it is not possible to import another. A new instance of sketchup has to be opened to use the tool again.
Is this how it is or should I be able to import multiple kml files, one after another?
Thanks
[quote="dawrightau"]Thanks for getting back to me Aerilius,
I am using 1.4.9 being the version you updated to fix the part loading issue of mine in a previous post.
-
@dawrightau said:
When one kml file (that imports ok) has been imported it is not possible to import another.
This should not happen, one should be able to import any amount of kml files ninto the same model.
I think I found the issue and have almost fixed it (I will finish and release an update this evening).
-
I uploaded a new version!
-
Thanks very much Aerilius I will give it a try.
Regards
David
-
Hi Aerilius,
Billiant thank you.
Just to let you know that I could import both kml files into the one session, both geolocted correctly.
Regards
David
-
Your kml import works so well.
Would you now consider creating a kmz import to import a geo located ongoing image.
It would in part be a matter of extracting the doc.kml file from the kmz zip file read the coordinates in the same way as you do now and then import the png file to that location.
Would be great functionality.
Could send you an example file
Cheers
David
-
When I use the import, I get a 'Missing Textures- Unknown Texture' window. The model info comes in but no surfaces. The jpgs for the textures are in the Files folder of the KML but it can't seem to find it.
Am I missing a step?
-
This is an error message from SketchUp's Collada importer, not from my plugin (and I unfortunately can't do anything about it).
SketchUp supports a lot of the Collada standard (actually more than any other program) but not all. SketchUp doesn't understand how your source program specifies the textures. I have reported this as a bug some days ago.
-
If you open the main file in a plain-text editor like Notepad++.exe then it will be 'readable'...
See what the image-file parts says...
Logically it should be a simple file-name [image.jpg], so that if the image-file kept with the main file it will be found.
If it's a 'relative' file-path including a folder then you must keep the image-files in that specified folder [e.g. images/image.jpg] with the main file.
If it's an 'absolute' file-path [i.e. with a drive letter etc] then you need to recreate that exact same folder for those image-files [e.g. c:/temp/images/image.jpg].When the importer runs on the main file it should then find the image-files where it's expecting them to be...
If the image-file names in the imported file bear no relationship to the actual image-file names you have, then you are in trouble - but even then you could try copying and renaming the image-files to suit, if you know which one is which that is...
-
Yes, TIG is right, that is the normal way to trouble-shoot plain-text file formats like Collada.
Here it's probably not a problem with the file path, but the xml structure is different (%(#000040)[<effect><profile_COMMON><image>]
) from what SketchUp expects (%(#000040)[<surface>,<sampler2D>,<library_images>...]
). I fixed this once manually, but it's so complicated that you wouldn't want to do do it with more than one or two files. -
Hi & thx for the quick reply.
I had tried opening the files in a text editor, thinking it was a pathing issue. I duplicated the path found in the text, but it still gave me the missing texture warning.
The difference in the XML structure seems to be the issue.
Oh well. At least I get the surfaces in the correct places.
Thanks again
-
hi,
first thank you for this plugin it will help me a lot in my project,so I will make a 3D modeling of a city,
I have a shapefile I have converted to KML using gvSIG and now I want imported the kml file in google sketchup
I insert your plugin, but that nothing is imported
I want to know if there is a structure ( balises or something) that I should add it to kml file for the import is correct.
please help me
yhank you for any help -
The plugin tries to extract from kml files what it can import, so it does not aim to import all. Maybe you can pm me an example file so that I can take a look at it and adjust the plugin
Advertisement