标签: openlayers

OpenLayers对谷歌地图?

我曾经多次使用谷歌地图,但对OpenLayers感到疑惑.
在开始任何编码之前,我想到了几个问题,

  • 为什么我要使用OpenLayers而不是谷歌地图?
    • 无论如何,除了OSS许可证
    • 您是否遇到过绝对不推荐使用OpenLayers的情况?
    • 在Stack Overflow上搜索了"OpenLayers" ; 答案不多.这是否意味着这个解决方案使用不多?对于项目的长期可行性,这可能是一个问题吗?
  • 对于那些已经使用过OpenLayers的人:我可能会遇到任何常见的陷阱/问题吗?
    • 用它来使用JavaScript框架怎么样?我已经看到它正在使用Prototype,我知道Prototype,所以这样就行了.但是如何使用像MooTools这样的东西呢?(与Prototype,BTW不兼容)
    • 有任何速度和性能相关的问题吗?我需要我的应用程序响应,不能等待数小时才能显示地图.
  • 有许多地方可以使用地图,还是有很多地方缺失?
    • 也就是说,我在法国,需要我的申请至少在大城市工作......这样可以吗?
    • 如果没有,是否很容易找到OpenLayers的图层和可视化并集成它们?
  • 是否有任何类型的API来显示道路?
    • 例如,显示仅单向的道路.
    • 如果是的话,我该怎么做?我是否必须拥有包含这些道路信息的某种文件,然后自己在地图上显示它们?
  • 你知道OpenLayers有什么好的教程吗?

我还没有尝试过,那些只是出了问题......

javascript google-maps openlayers

169
推荐指数
8
解决办法
5万
查看次数

使用JavaScript在OpenLayers中绘制一条带有一条线的路径

我已经看到了这里提供的如何绘制线条的示例,但示例仅显示了如何使用鼠标进行操作,方法是单击.

我想要做的是在给定经度和纬度坐标列表的情况下使用JavaScript手动绘制线条.

我无法处理上面链接中提供的源的原因是因为他们只调用activate该功能,然后让用户指向并单击地图.

有没有人以编程方式在OpenLayers地图上绘制路径?

我想要做的就是:http://openspace.ordnancesurvey.co.uk/openspace/example4.html,但不使用OpenSpace.

javascript map openlayers

31
推荐指数
1
解决办法
4万
查看次数

传单(geojson)多边形上的简单标签

我正在尝试我所设想的与传单多面体对象相当常见的用例.

我使用geojson创建MultiPolygon:

var layer = L.GeoJSON(g, style_opts);
Run Code Online (Sandbox Code Playgroud)

我想要的是在每个多边形的中心放置一个简单的文本标签.(例如,将州名放在每个州的中心).

我看过:https: //groups.google.com/forum/?fromgroups =#!topic/leaflet-js/sA2HnU5W9Fw

这实际上覆盖了文本,但是当我添加一堆多边形时,它似乎以偏怪的方式将标签偏离中心,而我目前无法追踪问题.

我也看过:https://github.com/jacobtoye/Leaflet.label

但是,当您将鼠标悬停在多边形上时,这似乎只会将标签放在多边形上,并且不会静态地保留在多边形上.

我认为我最好的做法是使用第一个链接,并追踪它为什么会改变位置,但与此同时,如果有人知道一种快速简便的方法在传单上放置多边形,我会非常感激.

另外,如果我对上面的两个链接有任何错误的假设,请随时让我理顺.

首先十分感谢.

javascript mapping openlayers leaflet

29
推荐指数
2
解决办法
4万
查看次数

CSS:position:fixed of position:absolute

我遇到了一些非常奇怪的行为,并且在我测试过的每个浏览器中都是不一致的.

我的布局非常复杂,但主要问题在于:

<div id="drop">
  <div id="header"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

#dropposition:absolutez-index:100
#headerposition:fixed; top:60px;

当我开始向下滚动时,Chrome会忽略该position:fixed规则.如果我从上面删除上述两种样式中的任何一种,#drop则Chrome开始position:fixed遵守该规则.

无法让它在Ubuntu Chrome 23.0.1271.97上运行,并在Mac Chrome 25.0.1364.99上看到相同的行为.我的朋友使用Ubuntu Chrome 25.0.1364.68测试版,它可以正常使用.我在firefox上测试过它有点工作(有其他症状)

有没有人听说过这个错误?或者任何人都可以重现它?

编辑

我正在使用openlayers map作为另一个div,position:fixed如果我删除该层或者至少将其更改为display:none那么这个奇怪的bug就会消失.

编辑

注意到在出现此错误时,如果我来回更改缩放级别,则位置会自行调整为正确的行为.对我来说,这表明webkit问题无法在滚动上执行某些内部回调函数.

另一个非常奇怪的事情是,我内部有一些链接,#header如果我只是点击预期的位置它们工作,即使div没有出现在那里.总的来说,我注意到只有渲染被打破了.如果在任何时候我强制浏览器通过调整窗口大小,或更改缩放,或只是选择全部来重新渲染,那么标题栏会跳转到正确的位置,但不会保持固定.

css webkit google-chrome css3 openlayers

26
推荐指数
2
解决办法
2万
查看次数

MapServer/OpenLayers的好例子

我想说服一些客户使用MapServer和OpenLayers.请有人建议有吸引力的网站来展示可能性!

客户将对以下方面印象深刻:

  • 密度图(也称为热图,颜色阴影格覆盖,等高线图...).
  • 用户能够以某种格式(例如netCDF)下载密度图的基础数据,仅限于正在查看的区域.
  • 标准OpenLayers的东西.缩放,平移,比例尺,概览图......
  • 不同的基础层.可能是WMS,Google,Bing ......
  • 搜索地名,平移地图以显示地点.
  • 公开热图数据以供其他人在mashup中用作WMSWCS

MapServer.org已经备份但是demo.mapserver.org现在似乎已经关闭了:(但是从内存中他们的示例没有"哇"因素.OpenLayers示例演示了每个示例只有一两个功能 - 我想要一些东西通过在一个示例中显示所有功能来使客户惊叹.

PS如果您有一些使用其他开源工具的好例子,请务必发布它们.但请注意JavaScript:客户说没有富客户端.

编辑来吧StackOverflow,有人必须有一个使用密度图的例子?? 我现在甚至提供赏金......

gis mapping mapserver openlayers heatmap

23
推荐指数
1
解决办法
3万
查看次数

OpenLayers,很棒的标记聚类

你知道如何在OpenLayers中有一个很好的聚类,比如这个谷歌的例子吗?

javascript openlayers markerclusterer

22
推荐指数
4
解决办法
3万
查看次数

快速写下png

摘要

我想尽快写一个.png文件,而不用考虑压缩.也就是说,我不太关心文件大小,但我确实关心写入是否尽快发生.

动机

我正在使用客户端的OpenLayers和后端的python/C++创建基于Web的地图应用程序.当用户在地图上移动时,应用程序需要能够快速绘制动态内容.我有基于图块(256x256图块)和单图像("单图块")版本的工作,但在这两种情况下,后端渲染的最慢部分实际上是将图像保存为png文件(无论是否-disk或in-memory).例如,我可以在大约200毫秒内生成某个视图的"原始","tga"或"tiff"版本,但生成.png版本需要更多的时间,因为.png保存需要几乎整整一秒,而实际保存其他格式的时间是100毫秒或更短(即使"原始"文件是.png文件大小的五倍).此文件节省的时间也远远超过将结果图像从服务器传输到客户端的时间.(我的应用程序的一个重要特性是,通常"后端"将与浏览器在同一台机器上运行,因此传输时间可以忽略不计,即使对于大文件也是如此.)

我以为我可以通过调用快速编写.png(在使用C++中的libpng时)

    png_set_compression_level( png_ptr, 0 );
Run Code Online (Sandbox Code Playgroud)

在调用任何png_write_...函数之前.但是,虽然该调用确实似乎阻止了libpng压缩文件(生成的文件大小与.raw文件大小相同),但它并没有使.png的保存速度明显加快.

请帮忙

我需要为这些图像使用.png,因为我需要它们是基本地图顶部的透明叠加层,我需要的不仅仅是GIF提供的256种颜色.OpenLayers只是使用html img标签,所以我的理解是我只能使用有效的img格式.

我认为有一种方法可以通过不进行任何实际压缩来快速编写.png文件(我知道.png是"始终压缩"但我想这可能包括"空压缩").看起来你应该能够编写一个简单的固定标题,然后是未压缩的数据,然后是一些固定的页脚.或者也许是相同的想法,但是以逐行的方式.关键是我可以非常快速地在内存中通过这个2.5 MB的原始数据循环进行各种循环,并且可以非常快速地将其转储到各种文件格式,所以看起来我应该能够将它转储到固定的,未压缩的.png格式也很快.

听起来不错吗?你知道在哪里可以找到代码的例子吗?

png save processing-efficiency openlayers libpng

22
推荐指数
2
解决办法
1万
查看次数

如何将矢量图层坐标转换为Openlayers中的Map纬度和经度

我很困惑.我有一点意见:

x= -12669114.702301
y= 5561132.6760608
Run Code Online (Sandbox Code Playgroud)

我通过DrawFeature控制器在矢量图层上绘制了一个正方形.

这些数字似乎......呃...很大,但它们看起来很有效,因为如果我后来绘制一个具有相同点的正方形,它处于相同的位置,所以我认为它们必须是正确的.

问题是当我尝试将此点转换为纬度和经度时.

我正在使用:

map.getLonLatFromPixel(pointToPixel(points[0]));
Run Code Online (Sandbox Code Playgroud)

其中points [0]是几何Point,pointToPixel函数占据任意点并将其转换为像素(因为getLonLatFromPixel需要一个像素).它通过简单地获取点的x,并使其成为像素x,等等来实现这一点.

我得到的纬度和经度是以下顺序:

lat: -54402718463.864
lng: -18771380.353223
Run Code Online (Sandbox Code Playgroud)

这显然是错误的.我真的很困惑.我尝试使用以下方法投影此对象:

.transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
Run Code Online (Sandbox Code Playgroud)

但是我真的没有得到它,而且非常确定我做错了,无论如何.

我的代码在这里:http://pastie.org/909644

我有点不知所措.坐标似乎是一致的,因为我可以重复使用它们来获得相同的结果......但它们似乎比我在openLayers网站上看到的任何示例都要大......

latitude-longitude openlayers proj4js

21
推荐指数
1
解决办法
3万
查看次数

OpenLayers - 如何从现有的lonLat点绘制多边形?

我在我的数据库中有来自用户定义多边形的经度 - 纬度顶点.我的问题是:如何在地图上重新创建并显示它们?使用Google Maps API非常容易,但我找不到任何有关如何使用OpenLayers执行此操作的文档或示例.有没有人有这方面的经验?

openlayers

21
推荐指数
1
解决办法
2万
查看次数

OpenLayers中的最小/最大缩放级别

我正在使用OpenLayers在网页中显示地图.我正在使用来自CloudMade的磁贴,但OpenStreetMap中的Mapnik磁贴也会出现同样的问题.

我正在尝试限制地图,以便用户无法一直缩放到世界视图 - 我希望它们保持在大致城市级别的缩放至少.

我尝试过使用minZoomLevel/ maxZoomLevel/ numZoomLevels属性; 只有maxZoomLevelnumZoomLevels属性似乎有效,而minZoomLevel属性似乎完全被忽略了.

还有另一种方法来实现这一目标吗?

javascript zoom openlayers openstreetmap cloudmade

20
推荐指数
3
解决办法
3万
查看次数