gpt4 book ai didi

javascript - Openlayers 和 Jquery 自动完成以从矢量图层打开弹出窗口

转载 作者:行者123 更新时间:2023-11-29 18:16:43 26 4
gpt4 key购买 nike

我正在使用 Openlayers 开发在线 map 。在那张 map 上,我有一个显示餐厅的矢量图层。每家餐厅都由一个图标表示,单击该图标可以打开弹出窗口以显示更多信息。到目前为止,一切都很好。但我想在 Jquery 中实现自动完成搜索。所以我想做的是当你在自动完成中选择一个餐厅名称时,我希望 map 打开相应的弹出窗口(触发弹出窗口加上 map 居中和缩放)。我设法使 map 居中,但我无法弄清楚弹出窗口的打开方式。

这里是我用于自动完成的代码:

$(function() {
$( "#searchresto" ).catcomplete({
delay: 0,
source: "select_resto.php",
select: function ( event, ui )
{
map.setCenter(
new OpenLayers.LonLat( ui.item.h_lon, ui.item.h_lat).transform(
new OpenLayers.Projection(Geo_pjt),
map.getProjectionObject()
), 5 );
},

open: function () {
$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top");
},
close: function () {
$( this ).removeClass( "ui-corner-top").addClass("ui-corner-all");
}

});});

那是我的矢量图层:

var resto = new OpenLayers.Layer.Vector("GML", {
protocol: new OpenLayers.Protocol.HTTP({
url: "restaurant.php",
format: new OpenLayers.Format.GML(),

}),
strategies: [new OpenLayers.Strategy.Fixed()],
projection: map.displayProjection,
});

有谁知道如何在 Jquery 函数中调用弹出窗口?或者也许我想做的是不可能的?

最佳答案

在用我的头在 table 上敲了好几个星期之后,我终于自己找到了答案。

如果您有兴趣,请看下面:

首先在自动完成的输入上添加一个“onchange="yourfunction()"

 <input type="text" id="searchresto" onchange="yourfunction(this)"/>

然后在你的openlayer中:

function getFeatureByHid(featureHId) {
var feature = null;
var found = false;
for(var i=0, len=resto.features.length; i<len; ++i) {
if(resto.features[i].attributes.crID == featureHId) {
feature = resto.features[i];
found = true;
break;
}
}

return feature;
}

function SelectRestoByRestoId(crID)
{
var feature = getFeatureByHid(crID);
if (feature)
{
restoSelect.unselectAll();
restoSelect.select(feature);
}
return true;
}

function yourfunction(event,ui){
return SelectRestoByRestoId(ui.item.id);
}

最后在自动完成中调用你的函数

$(function() {
$( "#searchresto" ).catcomplete({
delay: 0,
source: "select_resto.php",
select: yourfunction

});});

完成!!!!无论如何,谢谢你不回答我真的提高了我的 Javascript 技能!!! :)我希望这会对某人有所帮助!!!

关于javascript - Openlayers 和 Jquery 自动完成以从矢量图层打开弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22632831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com