Dies ist mein erstes Mal auf Stackoverflow und arbeiten mit Openlayers & Google Maps.OpenLayers Google Maps Projection Problem w/KML
Ich habe verschiedene Foren & Websites einschließlich OpenLayers.org durchsucht, um mein Problem zu lösen. Ich habe Suchen auf einer Kombination der folgenden durchgeführt: openlayers, google Kartenprojektionen und sphärischer Mercator ... aber ich habe keine Lösung gefunden.
Problem: Die KML-Daten von einem Web-Service-Aufruf (func setDataSource) verschiebt, wie ich in der Karte ein- und auszoomen. Meine Vermutung ist, dass die Projektionen in meinem Code falsch oder vielleicht falsch platziert sind. Ich habe keinen Hintergrund auf der Karte Projektionen, so dass es schwierig ist ein Online-:-(Mapping Terminologie zu verdauen. Kann mich jemand helfen?
//start here
var options = {
projection: new OpenLayers.Projection("EPSG:900913"),
displayProjection: new OpenLayers.Projection("EPSG:4326"),
units: "m",
numZoomLevels: 18,
maxResolution: 156543.0339,
maxExtent: new OpenLayers.Bounds(-20037508, -20037508,
20037508, 20037508)};
//*map = new OpenLayers.Map('map');
map = new OpenLayers.Map('map', options);
var gphy = new OpenLayers.Layer.Google(
"Google Street",
{'sphericalMercator':true});
// Add the background images via WMS
var bglayer = new OpenLayers.Layer.WMS("OpenLayers WMS",
"http://labs.metacarta.com/wms/vmap0", {layers: 'basic'}, {'reproject': true});
//map.addLayer(bglayer);
map.addLayers([gphy, bglayer]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent(); //* Zoom all the way out, this command also initalizes the map
OpenLayers.Console.log("initialized");
}
function setDataSource() {
OpenLayers.Console.log("Setting data source to " + OpenLayers.Util.getElement('loc').value);
if (layer != undefined) {map.removeLayer(layer)};
if (selectControl != undefined) {map.removeControl(selectControl)};
// Encode the destination url as a parameter string.
var params = OpenLayers.Util.getParameterString({url:OpenLayers.Util.getElement('loc').value})
// Make the http request to the transformer, with the destination url as a parameter.
layer = new OpenLayers.Layer.GML("KML", transformerURL + params,
{
format: OpenLayers.Format.KML,
formatOptions: {
extractStyles: true,
extractAttributes: true,
maxDepth: 2,
//projection: new OpenLayers.Projection("EPSG:4326"),
}
});
map.addLayer(layer);
Thank you !!!
Die Jungs und Mädchen über [GIS.stackexchange.com] (http://gis.stackexchange.com/) würde es wahrscheinlich einfacher finden, Ihnen beim nächsten Mal zu helfen .. – DefenestrationDay
vielleicht können Sie mir mit diesem Problem helfen [Openlayers Google Map Borders] [1] [1]: http://stackoverflow.com/questions/29120583/how-to-remove-countries-borders-from-a-google- map-integrated-in-opnelayers –