私のコードは完全に正常に機能しますが、「マーカー」をクリック/ホバーするたびに、openLayerはローカルサーバーから画像(.png)を取得しようとします。これは私のコードであり、画像は直接指定されていません。この動作を禁止するために何を上書きするかわからない:
これは、「onSelect」で発生するエラーです。
GET http://localhost:8888/img/cloud-popup-relative.png 404 (Not Found)
これは私のコードです。GETリクエストが繰り返されるとパフォーマンスが低下するため、誰かが助けてくれることを願っています。
var lonlat = convertProjectionToSphere(location);
console.log(lonlat);
var pointFeatures = [];
var pointGeometry = new OpenLayers.Geometry.Point(lonlat.lon, lonlat.lat);
var pointFeature = new OpenLayers.Feature.Vector(
pointGeometry,
null,
{
pointRadius: 16,
fillOpacity: 0.7,
externalGraphic:'img/mapIcons/Multi-Wave-test.png'
});
pointFeatures.push(pointFeature);
// Add features to the layer
var pointLayer = map.getLayer('Vectors');
pointLayer.addFeatures(pointFeatures);
// Add select feature control required to trigger events on the vector layer.
var selectControl = new OpenLayers.Control.SelectFeature(pointLayer, {
hover: true,
onSelect: function(feature) { // last point in my code from the stack trace
var layer = feature.layer;
feature.style.fillOpacity = 1;
feature.style.pointRadius = 20;
//layer.drawFeature(feature);
var content = '<div style="background-color:white;"><strong>Feature:</strong>'+
'<br/>' + feature.id +
'<br/><br/><strong>Location:</strong>'+
'<br/>' + feature.geometry +'</div>';
var popup = new OpenLayers.Popup.FramedCloud(
feature.id+"_popup",
feature.geometry.getBounds().
getCenterLonLat(),
new OpenLayers.Size(250, 100),
content,
null, // anchor
true, // closeBox exists
null); //closeBoxCallback
feature.popup = popup;
map.addPopup(popup);
},
onUnselect: function(feature) {
var layer = feature.layer;
feature.style.fillOpacity = 1;
feature.style.pointRadius = 16;
feature.renderIntent = null;
layer.drawFeature(feature);
map.removePopup(feature.popup);
}
});
map.addControl(selectControl);
selectControl.activate();