我在地图加载时收到此错误alt文本http://img239.imageshack.us/img239/6936/jserror.png.
错误发生在此行的原始未修改的OpenLayers.js文件中:
return!!(document.namespaces);
我试过把它重写为:
return (typeof(document.namespaces) != 'undefined');
并且它工作但我在进一步引用document.namespaces时得到相同的"未指定"错误:
if(!document.namespaces.olv){document.namespaces.add("olv",this.xmlns); ...
我尝试将其重写为:
if(typeof(document.namespaces.olv) == 'undefined') { ...
但我得到了相同的"未指明的错误".
我只在Internet Explorer上遇到此错误(我在7上测试过)而不是在Firefox中.
有线索吗?
谢谢.
我需要在站点的首页上创建一个交互式世界地图,视图门户将大约为650x200像素.交互性将包括以下内容,鼠标覆盖一个国家将突出显示(例如,国家将填充"红色")该国家和显示国家的名称(最好是div中的文本),我也将链接突出显示事件,选中时将突出显示一个国家/地区.
我很难找到合适的解决方案,我拒绝使用或学习闪存等专有技术,因此不能选择.我使用openlayers和自定义地图图像创建了一个简单的模型,但是IE6中各国的标记加载速度太慢.
svg似乎太大了,因为我试图使用RaphaelJS,但是当我意识到世界地图数据是1.2mb这对于网站的首页是完全不可接受的时候放弃了它.
我真的不知道我将如何做到这一点,我的最后一招是手动创建250+(无论有多少国家)png并将鼠标悬停事件应用于图像中的热点...但这可能会也是一个死胡同..拼命寻求解决方案,任何有用的评论将不胜感激!
我们最近一直在将我们公司的地图绘制系统从Google地图转换为deCarta,再转移到OpenLayers.我们发现,当地图中添加了许多元素(数千个)(点击时有气泡的针脚),OpenLayers和deCarta比Google地图慢得多.谷歌有标记管理器似乎使它更快,但我无法弄清楚这是如何减少内存使用或任何使其表现更好.它让我疯狂,因为我们对OL和deCarta做同样的事情,就像我们对谷歌一样,而其他人则非常慢.有没有人有使用这些系统的经验?
我知道谷歌是地图技术的巨大巨头,因此已经将大量资金投入到系统中,因此它的速度更快也就不足为奇了.我只是想知道如果可能的话.
谢谢!
我正在使用OpenLayers在标准HTML页面上显示地图,我想创建一个位于地图顶部的div.然而,div似乎总是被地图图块遮挡.
我相信有一种方法可以将元素添加到地图本身,但在这种情况下,这不是一个可行的选项,因为div可能会部分浮动在地图上,部分浮动在其他页面元素上.
<div id="maphost" style="width: 100%; height: 100%" />
<div id="overlay" />
Run Code Online (Sandbox Code Playgroud)
这是基本的HTML.我需要将哪些CSS值添加到DIV以使其成为可能?
我正在尝试将OpenLayers设置为在缩放开始之前不显示矢量图层,并在缩放结束后重新显示它.我有缩放结束部分已经建立如下:
map = new OpenLayers.Map('map_element', { eventListeners: { "zoomend": mapEvent}});
function mapEvent(event) {
if(event.type == "zoomend") {
hide_vector_layer();
}
}
Run Code Online (Sandbox Code Playgroud)
但我没有看到任何类型的事件监听器开始放大文档.有一个"movestart",涵盖了移动,平移和缩放.不幸的是,我不能使用"movestart",因为我不希望图层在平移期间消失.你会认为会有一个"zoomstart",因为有一个"zoomend".
我试图这样做的原因是因为我不喜欢当使用谷歌地图作为基础层时矢量图层以不同的速率缩放.它看起来不对,看起来所有功能都不准确,即使它们在缩放完成后落在正确的位置.
有什么建议?
我很难理解OpenLayers使用的坐标系.
英国莱斯特大约是.
Latitude: 52.63973017532399
Longitude: -1.142578125
Run Code Online (Sandbox Code Playgroud)
但是要使用OpenLayers显示相同的位置,我必须使用:
Latitude: 6915601.9146245
Longitude: -125089.1967713
Run Code Online (Sandbox Code Playgroud)
例如:
var center = new OpenLayers.LonLat(-125089.1967713, 6915601.9146245);
var map = new OpenLayers.Map("demoMap");
map.addLayer(new OpenLayers.Layer.OSM());
map.setCenter(center, 12);
Run Code Online (Sandbox Code Playgroud)
这些显然不是Latitude-Longitude坐标,我需要考虑一些转换吗?
一个有效的例子是http://craig-russell.co.uk/demos/openlayers/so_map.html
我不知道为什么这不起作用.我认为答案非常简单.我需要在添加新图层之前删除图层.
if (graphic) {
window.map.removeLayer(graphic);
}
var graphic = new OpenLayers.Layer.Image(
'Sightline'+''+SC,
url,
new OpenLayers.Bounds(derWesten[0].firstChild.nodeValue,derSueden[0].firstChild.nodeValue,derOsten[0].firstChild.nodeValue, derNorden[0].firstChild.nodeValue),
new OpenLayers.Size(0,0),
options
);
window.map.addLayer(graphic);
Run Code Online (Sandbox Code Playgroud)
它只是在层上堆积而不是删除任何层.有帮助吗?
在openlayers-2中,我们可以添加谷歌底图(卫星,物理,混合等).我需要在openlayer-3中添加google basemaps.如何添加谷歌底图???
openlayers中的CODE-3
map = new ol.Map({
layers: [
new ol.layer.Group({
layers: [
new ol.layer.Tile({
source: null,
visible:false
}),
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
}),
new ol.layer.Tile({
source: new ol.source.OSM(),
visible:false
})
]})
],
target: 'map',
view: new ol.View({
center:[28.566667, 4.01666699999998],
zoom:7
}),
controls: ol.control.defaults({
attribution:false
}).extend([
scaleLineControl
]),
});
lyr=new ol.layer.Tile({ source: new ol.source.TileWMS({
url: 'http://localhost:8080/geoserver/wms',
params: {'LAYERS': 'test:test', 'TILED': true},
serverType: 'geoserver'
})
});
map.addLayer(lyr);
Run Code Online (Sandbox Code Playgroud)
我需要google basemaps而不是osm和mapquest.
有没有人在Android中使用OpenLayers之前尝试过?那是怎么回事?它是通过某个地址的浏览器访问还是嵌入在使用WebViews的本地独立Android应用程序中?或其他方法.
如果您想到与此主题相关的任何参考,请在此处添加.
谢谢
假设我的数据库中有许多几何图形.我想在PostgreSQL中创建一个函数,我可以传入lat/long并让它返回给定半径的距离(线性和公路)最接近的几何.
我是这个的新手,所以任何建议都表示赞赏.
我正在运行以下版本:
这是架构:
-- ----------------------------
-- Table structure for "cities-usa"
-- ----------------------------
DROP TABLE IF EXISTS "cities-usa";
CREATE TABLE "cities-usa" (
"gid" int4 NOT NULL DEFAULT nextval('"cities-usa_gid_seq"'::regclass),
"st_fips" varchar(4),
"sfips" varchar(2),
"county_fip" varchar(4),
"cfips" varchar(4),
"pl_fips" varchar(7),
"id" varchar(20),
"name" varchar(39),
"elevation" varchar(60),
"pop_1990" numeric,
"population" varchar(30),
"st" varchar(6),
"state" varchar(16),
"warngenlev" varchar(16),
"warngentyp" varchar(16),
"watch_warn" varchar(3),
"zwatch_war" float8,
"prog_disc" int4,
"zprog_disc" float8,
"comboflag" float8,
"land_water" varchar(16),
"recnum" float8,
"lon" float8,
"lat" float8,
"geom" "geometry"
)
WITH …Run Code Online (Sandbox Code Playgroud) openlayers ×10
javascript ×6
geolocation ×2
google-maps ×2
mapping ×2
android ×1
geocoding ×1
geospatial ×1
map ×1
openlayers-3 ×1
postgis ×1
postgresql ×1
svg ×1
zooming ×1