我正在尝试使用OpenLayers 3创建交互式地图,客户端可以在地图上绘制多边形,然后检索绘制的多边形的坐标.我找到了一个很好的小教程CodePEN,我用它来进行绘制交互.这是我用来在地图上绘制新多边形的代码:
var curMap = this;
this.draw_interaction = new ol.interaction.Draw({
source: this.vectorLayer.getSource(),
type: /** @type {ol.geom.GeometryType} */ ('Polygon')
});
this.map.addInteraction(this.draw_interaction);
// when a new feature has been drawn...
this.draw_interaction.on('drawend', function(event) {
curMap.map.removeInteraction(curMap.draw_interaction);
var id = 'addedpoly '+curMap.vectorLayer.getSource().getFeatures().length;
event.feature.setId(id);
event.feature.setStyle(curMap.defaultPolyStyle);
console.log(event.feature);
curMap.saveData('GeoJSON');
});
Run Code Online (Sandbox Code Playgroud)
可以看出,整个代码都包含在一个javascript对象中,我在其中存储了绘图所需的不同类型的值.this.saveData()添加新多边形后,该函数应为我返回一个数组,其中包含所有添加的多边形坐标.但是,它不会执行此操作,而只返回在最后一个之前添加的多边形.这是该函数的代码:
Map.prototype.saveData = function (data_type) {
var format = new ol.format[data_type](), data, curMap = this;
try {
data = format.writeFeatures(curMap.vectorLayer.getSource().getFeatures());
} catch (e) {
alert(e.name + ": " + e.message);
return;
}
if (data_type …Run Code Online (Sandbox Code Playgroud) 我设法从 OSM 下载了一个行星文件,并使用 osmconvert 将其转换为 o5m 格式,并从中删除了所有作者信息,以保持文件较小。我试图从全世界的这个数据库中获取每个 POI,所以我对城市、城镇、高速公路、道路等不感兴趣,只对便利设施感兴趣。
首先,我尝试通过使用 osmosis 来实现这一点,它似乎设法做我想做的事,只是它总是内存不足,导致文件太大而无法处理。(我可以将文件拆分成更小的文件,但如果可能的话,我想避免这种情况)。
我尝试使用 osmfilter 进行试验,在那里,我设法过滤掉了每个包含名为 amenity 的标签的节点,但是我有几个无法解决的问题:
一种。如果我使用以下命令:
osmfilter planet.o5m -v --keep-tags="amenity=" -o=amenities.osm
Run Code Online (Sandbox Code Playgroud)
它保留所有节点,并过滤掉名称中没有舒适性的每个标签。
湾 如果我使用这个命令:
osmfilter planet.o5m -v --keep-tags="all amenity=" -o=amenities.osm
Run Code Online (Sandbox Code Playgroud)
它现在过滤掉所有没有便利性标签的节点,但也过滤掉匹配节点中的所有附加标签,其中包含我需要的信息(例如,兴趣点的名称或描述)
C。如果我使用这个命令:
osmfilter planet.o5m -v --keep-tags="all amenity= all name=" -o=amenities.osm
Run Code Online (Sandbox Code Playgroud)
过滤掉标签中包含名称或便利设施的每个节点,这给我留下了几个命名的城市或高速公路(我不需要的数据)。
我也尝试用 AND 运算符将其分开,但它说,在过滤标签时我不能使用 AND 运算符。知道我怎么能达到预期的结果吗?
尾注:我运行的是 Windows 7 系统,所以没有基于 Linux 的程序可以帮助我:|
我的页面上有一个输入框<input class='cv-input cv-dashboard-input'>,定义了以下规则:
input.cv-dashboard-input {
font-family: Roboto;
font-weight: 300;
color: #004d6f;
border: 1px solid #adadad;
border-radius: 0px;
font-size: 14px;
transition: all 0.3s;
margin: 0;
box-sizing: border-box;
}
input.cv-input {
height: 42px;
width: 100%;
padding: 5px;
font-family: Roboto;
font-weight: 300;
}
Run Code Online (Sandbox Code Playgroud)
当我在 Firefox 中检查这个元素并检查它的计算尺寸时,它指出我的边框宽度是 0.583333px。我认为最小渲染尺寸是 1 px,那么这是怎么发生的呢?
我使用的是 Firefox 54.0.1(32 位)
我有一个PHP脚本,可以创建一个树,其中包含所有可能的移动,最多可以提前15步.
创建移动的脚本如下所示:
function createPossibleMoves($heroId, Hero $Hero, Move $LastPossibleMove = null) {
$moves = array();
foreach ($Hero->Attacks as $attackid => $attack) {
if ($attack['uses'] < 1) continue;
$usesLeft = $attack['uses'];
$LastPerformedMoveIterator = $LastPerformedMove;
while (is_a($LastPerformedMoveIterator, "Move")) {
if ($LastPerformedMoveIterator->heroId == $heroid && $LastPerformedMoveIterator->attackId == $attackid) $usesLeft--;
$LastPerformedMoveIterator = $LastPerformedMoveIterator->PreviousMove;
}
if ($usesLeft < 1) continue;
if ($attack['targets'] === 1) {
foreach ($this->Monsters as $monsterid=>$Monster) {
$Move = new Move($heroid, $attackid, $this, array($monsterid));
$Move->setPreviousMove($LastPerformedMove);
$moves[$Move->getMoveHash()] = $Move;
}
} else {
$maxTargets …Run Code Online (Sandbox Code Playgroud) 为什么JavaScript认为该值0等于空字符串?
defValue = 0;
if ( defValue == '' ) defValue = null;
alert( defValue ); // alerts null
defValue = 1;
if ( defValue == '' ) defValue = null;
alert( defValue ); // alerts 1
Run Code Online (Sandbox Code Playgroud)
我正在将一些Perl代码转换为php,我偶然发现了一些东西,我不确定它是什么.
if(!$continenttxt_cached{$savedcontinentid.'_'.$savedcountrygroupid})
Run Code Online (Sandbox Code Playgroud)
{}支架在这做什么?这是以这种方式访问的标准数组元素吗?因为我只转换一个相当大的代码的一小部分,我找不到如何$continenttxt_cached定义,所以我只能假设这是一个数组.是{}用于其他在Perl的东西吗?
我们假设我有以下查询:
SELECT Ads.AdId
FROM Ads
, AdsAmenities
WHERE AdsAmenities.amenities_AmenityId IN (2, 18, 1)
AND Ads.AdId = AdsAmenities.ads_AdId
Run Code Online (Sandbox Code Playgroud)
此查询从广告表中选择每个AdId,该广告表至少包含以下三种设施之一(2,18,1 ).该AdsAmenities表是一个,在那里我存储之间的关系Ads和Amenities.我怎么能改变这个查询,它应该只返回具有所有枚举的设施ID的AdId ?
当我已经通过它在CSS中的id选择它的父级时,我似乎无法通过它的类来选择元素.这可能是什么问题?
<div id="desktopCloseIconQuickAction" class='shown'>
<span class="icon-label">Close</span>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
#desktopCloseIconQuickAction {
font-size: 13px;
position: absolute;
overflow: hidden;
right: -115px;
top: 15px;
z-index: 9;
width: 70px;
opacity: 0;
transition: all 0.6s;
}
#desktopCloseIconQuickAction.shown {
right: 15px;
opacity: 1;
}
#desktopCloseIconQuickAction .icon_label {
display: inline;
opacity: 0;
padding-right: 5px;
transition: all 0.6s;
color: green;
}
Run Code Online (Sandbox Code Playgroud)
为什么跨度中的文本"关闭"变为绿色或消失?
JSFiddle:http://jsfiddle.net/1t8rumc5/1/
当box2的z-index高于box1时,为什么box2不会与它下方的box1重叠?
.box1 {
height: 30px;
width: auto;
z-index: 1;
position: relative;
}
.box2 {
position: absolute;
height: 20px;
border: 1px solid red;
background-color: white;
z-index: 2;
}Run Code Online (Sandbox Code Playgroud)
<div class='box1'>
Just a box
<div class='box2'>Should overlap</div>
</div>
<div class='box1'>
Why is this not partially hidden?
</div>Run Code Online (Sandbox Code Playgroud)
这是一个小提琴:http://jsfiddle.net/k7m4y42L/ 另一个,类似于我的HTML结构:http://jsfiddle.net/1nv8fd93/
提出以下情况:
function functionExists(functionName) {
if (typeof window[functionName] == 'function') console.log("It's a function");
}
Run Code Online (Sandbox Code Playgroud)
什么是在同等功能nodejs的functionExists那里是没有全局window变量?
具体情况:
我的具体情况使用了webpack而不是nodejs,但基本上问题是一样的。我可以window在这里使用,但是干净地实现所有内容会太复杂,并且不建议webpack将事情减轻到window全局变量。
基本上,我有一个PHP后端,它生成一个 html <form>,通过一个data属性向它添加一些选项。当页面加载时,我的 javascript 会初始化它<form>并为其提供一系列功能(例如验证)。javascript 对这个表单所做的另一件事是它解析它的数据属性,而不是正常的页面重新加载提交,它改变了表单,以便它通过ajax请求提交给服务器。
当这个提交发生时,它被设置,按钮和整个表单被禁用,直到我的Ajax脚本发回响应。这是如何完成的,是我有一个Project_Form类,当它初始化时,将自身附加到jQuery提交事件,停止基本提交事件,并运行一个内部函数,该函数将 ajax 请求发送到 api 方法。设置了 ajax 请求,当收到响应时,同一个实例化类将收到此响应,因此我可以继续使用它。
当表单收到响应时,它必须对它做一些事情。在最基本的情况下,它必须向用户显示成功消息,但还有一些更复杂的情况,例如,它必须进行页面重定向(例如登录表单)。现在,它被设置为默认情况下,它将显示一条消息,但是当我在 PHP 中定义此表单时,我可以选择“劫持”此默认行为,而不是将 ajax 响应发送到一个自定义函数,它将专门解决这种情况。
当我在 PHP 中渲染表单时,我已经知道表单应该在哪里发送成功响应(到哪个 javascript 函数),但我只能通过字符串将此信息提供给 javascript。所以我的Project_Form班级应该获取这个字符串,并且应该尝试从中获取一个它将使用的函数。这就是我的问题的来源。