Tuesday, June 28, 2016

Interactive KML Placemarks using HTML/JavaScript

Be The First To Comment
My colleague stopped by this morning and asked me to see if there is any way to  implement combo box / drop-down list in KML file for dynamically selecting the Placemarks' information. Few hour of googling come up with a quick and dirty KML (adding custom data) using HTML/JavaScript in <ExtendedData> tag with combo box selection and pasted it here for our future reference. It may helps others as well. If there are any alternatives feel free to chime in.

 <?xml version="1.0" encoding="UTF-8"?>  
 <kml xmlns="http://www.opengis.net/kml/2.2">  
      <Document>  
         
      <Style id="MyBalloonStyle">  
           <BalloonStyle>  
                <text> <![CDATA[  
                <b>Example extended data template</b>  
   
                <div style="width:350px;" id="tree"></div>  
   
                <table id="table" border="1" >  
                     <tr><td>Company Name</td></tr>  
                     <tr><td><i>$[Company_Name]</i></td></tr>  
                     <tr><td>  
                          <select id = "treeListSelection" onchange = 'treeListChanged(value)'>  
                           <option>--Select--</option>  
                           <option value="tree 1">'Tree 1'</option>  
                           <option value="tree 2">'Tree 2'</option>   
                          </select>  
                     </td></tr>  
                </table>    
   
                <script type="text/javascript">   
                 function treeListChanged(value){  
                     document.getElementById('tree').innerHTML = value ;        
                 }  
                </script>  
   
                ]]></text>  
                <bgColor>ffffffbb</bgColor>  
           </BalloonStyle>  
           <IconStyle> <color>ffffffff</color> <scale>1</scale>  
                <Icon><href>http://maps.google.com/mapfiles/kml/pushpin/grn-pushpin.png</href>  
                </Icon>  
           </IconStyle>  
           <LabelStyle>   
                <scale>0</scale>   
           </LabelStyle>  
      </Style>  

Thursday, January 10, 2013

pyKML - a Python library for generating and parsing KML

Be The First To Comment


pyKML is an open source Python library for generating, parsing, and modifying KML, the geo-spatial data language used by Google Earth, Google Maps and a number of other GIS platforms.

pyKML helps working with large and complex KML documents by leveraging the use of basic programming constructs (looping, branching, etc.). In this regard pyKML is similar to libkml, Google’s open source C++ library, but takes advantage of the highly readable syntax of the Python programming language and the processing capabilities of the popular lxml Python library.


pyKML v0.1.0 documentation :  http://packages.python.org/pykml/



Tuesday, January 8, 2013

Geographic Visualization for the Web : Book Review

Be The First To Comment


This book is an attempt to share the knowledge I've gained from the experts at Google. When I joined it, the KML team consisted of two engineers: Bent Hagemark and Michael Ashbridge ("Mash"). Bent and Mash's mission was to corral the existing KML into a formal XML schema, to create compelling examples that would represent good coding style, and to shepherd the language to its new and deserved status as an international standard. I was to create a website for KML and expand the existing documentation. I managed to complete that task, but it always felt as though I'd exposed only the tip of the iceberg. Well, here's The Iceberg.”          – Author

"KML Handbook :Geographic Visualization for the Web" is primarily targeted for people who are curious about how to create customized presentations for an Earth browser such as Google Earth but have little or no experience with computer programming. It has step by step guidelines to create and customize Google Placemarks and Ballons, Google Earth Overlay, Static and dynamic KML/KMZ update and manipulation.

Pro: This  book has  a step by step guide to writing and using KML programming language to produce enhanced graphics as overlays onto web based mapping programs such as Google Earth. You do not need to have any programming skills to use this book except basic knowledge of HTML and XML.

Con: Some images in the books are fuzzy and hard to read. It is highly Google centric, may be because the author, Josie Wernecke, senior technical writer at Google.



Wednesday, November 23, 2011

Instructions for Creating KMZ Image Overlays from ArcGIS in Google Earth and Google Map

1 Comment
Creating a kmz image overlay

 1. Make sure the dataset you are working with has a geographic coordinate system (unprojected) with WGS84 as the datum. If not, you will need to reproject your data. If the coordinate system of your datasets is defined you can change the projection “on-the-fly”. To reproject on-the-fly, go to Layers then Click Properties and specify geographic with WGS84 datum as the coordinate system. However, I recommend reprojecting the actual GIS datasets (shapefiles, grids, etc.) because project-on-the-fly is not always very precise, particularly when dealing with datum transformations.

2. Switch to the layout view. Select a layout that matches the dimensions of your map as closely as possible. To keep the file sizes of your images small, try to leave as little empty space around the edges as possible. Right-click on the layout and select Page and Print Setup to change the layout size.

3. Right-click on the map and select Properties. Go to the Size and Position tab. Under Size, set the Width and Height to exactly match the Width and Height of your layout. Under Position, set X and Y both to zero. Go to the Frame tab and make sure that Border is set to .

4. Zoom and pan in the layout so that you have as little empty space at the edges as possible.

5. Right-click on the layout and select Properties. Go to the Data Frame tab. Under Fixed Extent, you will see the latitudes for the top and bottom of the current layout, and the longitudes for the left and right sides of the current layout. Write these numbers down or cut and paste them into a file. Do not change them!

6. Go to File then Click Export Map. Export the tile as a PNG image. Select the Resolution (in pixels per inch). Depending on the amount of detail in your map and the size of your layout, you may need to experiment with a variety of resolutions to achieve a good balance between image quality and image size. 200 pixels per inch is often a good place to start. On the Format tab set Color Mode to 24-bit True Color, set the Background Color to white, and set the Transparent Color to white as well. If you have white in your map, you may need to choose a different shade (perhaps grey) for both the Background Color and Transparent Color. Do not check Clip Output to Graphics Extent. Click Save to export your file.
7. Open Google Earth

8. Select Add then Click Image Overlay

9. In the New Image Overlay box, type in a name for your overlay and use the Browse button to link to the image that you exported. You can use the Transparency slider to adjust the opacity of the overlay. Add a Description if you like.

10. Go to the Location tab and type or paste in the boundary coordinates of your layout that you saved in step 5. Be sure to include the negative sign for west latitudes. Click on OK.

11. You should see the name of your new image overlay under your Places in Google Earth. Right-click on it and select Save Place As… to save it as a kmz file. Once you have saved the kmz file, you can delete the temporary image overlay. You can double-click on your kmz file to open it in Google Earth,or use File then Click Open from the Google Earth menu.

Modifying a kmz image overlay

 1. You can use a program such as 7-zip to open the kmz archive. Inside you will find a KML file entitled doc.kml, and a subfolder that contains your image. You can open the KML file with a text editor. Note that there are just a few tags here that tell Google Earth what to do with your image. There is a tag. The tag has a code that specifies the amount of transparency in the overlay. The tag identifies the image to be overlaid. Thetab identified the bounding coordinates of the image.

2. You can create new kmz files by modifying this existing file. You can make a copy of the existing KMZ file, use 7-zip to remove the image1.png image and replace it with a image2.png image, and then use a text editor to modify the and tags in the kml file. Even if you have a new image has different bounding coordinates, you can edit them directly in the kmz file rather than using the New Image Overlay tool in Google Earth.

3. You can also add a legend or other graphics as screen overlays that are attached to a particular location on the screen (for example, the lower left corner) rather than a particular geographic location on the Earth’s surface.

4. There are various ways to export a legend from ArcGIS to a PNG file. One approach is to export the legend as part of a larger map graphic and then clip it out using a graphics program. Alternately, you can “trick” ArcGIS into letting you export the legend directly. Make sure your map symbology is set up the way that you want it displayed in the legend (it should match the map graphic that you have already exported). Set up your layout dimensions to match the size of your exported graphic (e.g., 1.5 x 1.5 inches). It can help to Insert then Click Legend into your layout first to get an idea of its dimensions. Your legend should fill up the layout and leave minimal whitespace at the edges. Right-click on the legend and choose Convert to Graphics. Then you can uncheck the map layers in the Table of Contents and you will only see the legend. You can now export the layout to a PNG file like you did with the map image. The only difference is that you should set the Background Color to white and the Transparent Color to No Color.

 

© 2011 GIS and Remote Sensing Tools, Tips and more .. ToS | Privacy Policy | Sitemap

About Me