[OpenLayers-Users] Simple KML layer help
Bill Schoolfield
bill at billmax.com
Thu Dec 20 12:13:00 PST 2012
Now have another problem. This kml file displays just fine at google.
But using OL the layer/icon does not show up:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Style id="sh_sunny_copy70">
<IconStyle>
<scale>1.4</scale>
<Icon>
<href>http://maps.google.com/mapfiles/kml/shapes/sunny.png</href>
</Icon>
<hotSpot x="0.5" y="0.5" xunits="fraction" yunits="fraction"/>
</IconStyle>
<LabelStyle>
<color>ff00aaff</color>
</LabelStyle>
</Style>
<Placemark>
<name>MY POINT</name>
<description>My Point</description>
<address>101 Elm</address>
<Point>
<coordinates>-97.14879049,32.89119839, 0.</coordinates>
</Point>
<styleUrl>#sh_sunny_copy70</styleUrl>
</Placemark>
</Document>
</kml>
Any suggestions???? I'm using the same code below. Note that the very
same script but with different lat/long works just fine in OL.
Bill
On 12/19/2012 9:19 AM, Arnd Wippermann wrote:
> Instead in- and externalProjection you can use projection in the layer
> options.
>
> var l = new OpenLayers.Layer.Vector("KML", {
> strategies: [new OpenLayers.Strategy.Fixed()],
> projection: new OpenLayers.Projection("EPSG:4326"), //projection of the
> data
> protocol: new OpenLayers.Protocol.HTTP({
> url: "test.kml",
> format: new OpenLayers.Format.KML({
> extractStyles: true,
> extractAttributes: true,
> maxDepth: 2
> })
> })
> });
>
> -----Ursprüngliche Nachricht-----
> Von: Bill Schoolfield [mailto:bill at billmax.com]
> Gesendet: Mittwoch, 19. Dezember 2012 00:46
> An: arnd.wippermann at web.de
> Betreff: Re: AW: [OpenLayers-Users] Simple KML layer help
>
> Arnd,
>
> Thanks. I made your change and it works. Gesh, Looked at that forever.
> Is the code correct otherwise? Seems like I may have done unnecessary things
> while trying to sort this out.
>
> Bill
>
>
> On 12/18/2012 5:29 PM, Arnd Wippermann wrote:
>> The Coordinate is lon, lat
>>
>> <coordinates>-96.80933013, 32.77874075, 0.</coordinates> Elm St in Dallas?
>>
>> With your coordinates lat is -96 and thats outside projection.
>>
>> Arnd
>>
>>
>>
>> -----Ursprüngliche Nachricht-----
>> Von: openlayers-users-bounces at lists.osgeo.org
>> [mailto:openlayers-users-bounces at lists.osgeo.org] Im Auftrag von Bill
>> Schoolfield
>> Gesendet: Dienstag, 18. Dezember 2012 22:45
>> An: openlayers-users at lists.osgeo.org
>> Betreff: [OpenLayers-Users] Simple KML layer help
>>
>> Sorry for the last post: Here is my request in its entirety:
>>
>>
>> I'm trying to add a simple KML layer to a OL Map. I assume I have to
>> worry about projection of the lat/longs in the KML file. The following
>> runs w/o error but I don't see my KML layer. The rest of the map is
>> fine. I know this is very close to other posts and topics but I can't
>> quite seem to get anything to work.
>>
>> Here is the php file that takes lat long arguments and produces a map:
>>
>> <html><body>
>> <div id="map"></div>
>> <script src="http://www.openlayers.org/api/OpenLayers.js"></script>
>> <script>
>> map = new OpenLayers.Map("map");
>> map.addLayer(new OpenLayers.Layer.OSM("map"));
>>
>> var l = new OpenLayers.Layer.Vector("KML", {
>> strategies: [new OpenLayers.Strategy.Fixed()],
>> protocol: new OpenLayers.Protocol.HTTP({
>> url: "test.kml",
>> format: new OpenLayers.Format.KML({
>> extractStyles: true,
>> extractAttributes: true,
>> maxDepth: 2,
>> 'internalProjection': new
>> OpenLayers.Projection("EPSG:900913"),
>> 'externalProjection': new
>> OpenLayers.Projection("EPSG:4326")
>> })
>> })
>> });
>>
>> map.addLayer(l);
>>
>> map.addControl(
>> new OpenLayers.Control.MousePosition({
>> prefix: '<a target="_blank" ' +
>>
>> 'href="http://spatialreference.org/ref/epsg/4326/">' +
>> 'EPSG:4326</a> coordinates: ',
>> separator: ' | ',
>> numDigits: 2,
>> emptyString: 'Mouse is not over map.'
>> })
>> );
>>
>> var proj = new OpenLayers.Projection("EPSG:4326");
>> var point = new OpenLayers.LonLat(<?php echo $_GET["long"];
>> ?> , <?php echo $_GET["lat"]; ?>);
>> point.transform(proj, map.getProjectionObject());
>>
>> map.setCenter(point, 13);
>>
>> </script>
>> </body></html>
>>
>> And here is the test.kml file:
>>
>> <?xml version="1.0" encoding="UTF-8"?> <kml
>> xmlns="http://www.opengis.net/kml/2.2">
>> <Document>
>> <Placemark>
>> <name>MY POINT</name>
>> <description>My Point</description>
>> <Point>
>> <coordinates>32.77874075,-96.80933013, 0.</coordinates>
>> <Icon>
>>
> <href>http://maps.google.com/mapfiles/kml/shapes/sunny.png</href>
>> </Icon>
>> </Point>
>> </Placemark>
>> </Document>
>> </kml>
>> _______________________________________________
>> Users mailing list
>> Users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>>
More information about the Users
mailing list