Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改google maps api 3中不同map.data.loadGeoJson数据集的标记_Javascript_Google Maps_Geojson - Fatal编程技术网

Javascript 更改google maps api 3中不同map.data.loadGeoJson数据集的标记

Javascript 更改google maps api 3中不同map.data.loadGeoJson数据集的标记,javascript,google-maps,geojson,Javascript,Google Maps,Geojson,我有两个不同的geojson数据集,我希望数据集的一个标记设置为一个自定义图标,另一个数据集设置为另一个自定义图标 我该怎么做呢 这是到目前为止我的代码 var map; var infowindow = new google.maps.InfoWindow(); function initialize() { // Create a simple map. map = new google.maps.Map(document.getElementById('map2'), {

我有两个不同的geojson数据集,我希望数据集的一个标记设置为一个自定义图标,另一个数据集设置为另一个自定义图标

我该怎么做呢

这是到目前为止我的代码

var map;
var infowindow = new google.maps.InfoWindow();

function initialize() {
    // Create a simple map.
    map = new google.maps.Map(document.getElementById('map2'), {
        zoom: 6,
        center: {lat: 53.939480, lng: -116.847401},
        mapTypeControlOptions: {
          mapTypeIds: ['roadmap', 'satellite', 'hybrid', 'terrain',
                  'styled_map']
        }
    });


    map.mapTypes.set('styled_map', styledMapType);
    map.setMapTypeId('styled_map'); //geo json

    google.maps.event.addListener(map, 'click', function() {
      infowindow.close();
    });

    // Load the associated GeoJSON
    var url = 'https://north-river.s3.us-east-2.amazonaws.com/Active.geojson';
    var url2 ='https://north-river.s3.us-east-2.amazonaws.com/Pipelines.geojson'
    map.data.loadGeoJson(url);
    map.data.loadGeoJson(url2);

  // Set event listener for each feature.
  map.data.addListener('click', function(event) {
     infowindow.setContent(
       "<table>"+
       "<tbody>"+"<th>Name:</th>" + "<td>" + event.feature.getProperty('Name') + "</td>" + "</tbody>" +
       "<tbody>"+"<th>Status:</th>" + "<td>" + event.feature.getProperty('Status') + "</td>" + "</tbody>" +
       "<tbody>"+"<th>Lat_DMS:</th>" + "<td>" + event.feature.getProperty('Lat_DMS') + "</td>" + "</tbody>" 


       );
     infowindow.setPosition(event.latLng);
     infowindow.setOptions({pixelOffset: new google.maps.Size(0,-34)});
     infowindow.open(map);
  });
}
google.maps.event.addDomListener(window, 'load', initialize);
var映射;
var infowindow=new google.maps.infowindow();
函数初始化(){
//创建一个简单的地图。
map=new google.maps.map(document.getElementById('map2'){
缩放:6,
中心:{lat:53.939480,lng:-116.847401},
mapTypeControlOptions:{
MapTypeId:[“路线图”、“卫星”、“混合”、“地形”,
“样式化地图”]
}
});
map.mapTypes.set('styled_map',styledMapType);
setMapTypeId('styled_map');//地理json
google.maps.event.addListener(映射,'click',函数(){
infowindow.close();
});
//加载关联的GeoJSON
var url='1〕https://north-river.s3.us-east-2.amazonaws.com/Active.geojson';
var url2=https://north-river.s3.us-east-2.amazonaws.com/Pipelines.geojson'
map.data.loadGeoJson(url);
map.data.loadGeoJson(url2);
//为每个功能设置事件侦听器。
map.data.addListener('click',函数(事件){
infowindow.setContent(
""+
“+”名称:“+”+事件。功能。getProperty('Name')+“”+
“+”状态:“+”+事件.feature.getProperty('Status')+“+”+
“+”Lat\U DMS:“+”+事件.feature.getProperty('Lat\U DMS')+”+“”
);
infowindow.setPosition(event.latLng);
setOptions({pixelcoffset:newgoogle.maps.Size(0,-34)});
打开(地图);
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);
为每个文件使用单独的图层,每个图层都具有相应的样式功能:

  // Load the associated GeoJSON
  var url = 'https://north-river.s3.us-east-2.amazonaws.com/Active.geojson';
  var url2 = 'https://north-river.s3.us-east-2.amazonaws.com/Pipelines.geojson'

  var layer1 = new google.maps.Data();
  layer1.loadGeoJson(url);
  layer1.setStyle(function(feature) {
    return /** @type {!google.maps.Data.StyleOptions} */({
      icon: "http://maps.google.com/mapfiles/ms/micons/blue.png"});
  });
  layer1.setMap(map);
  var layer2 = new google.maps.Data();
  layer2.loadGeoJson(url2);
  layer2.setStyle(function(feature) {
    return /** @type {!google.maps.Data.StyleOptions} */({
      icon: "http://maps.google.com/mapfiles/ms/micons/green.png"});
  });
  layer2.setMap(map);

var映射;
var infowindow=new google.maps.infowindow();
函数初始化(){
//创建一个简单的地图。
map=new google.maps.map(document.getElementById('map2'){
缩放:6,
中心:{
拉脱维亚:57.64206,
液化天然气:-122.494374
},
mapTypeControlOptions:{
MapTypeId:[“路线图”、“卫星”、“混合”、“地形”,
“样式化地图”
]
}
});
google.maps.event.addListener(map'center_changed',function(){
log(map.getCenter().toUrlValue(6));
});
//map.mapTypes.set('styled_map',styledMapType);
//setMapTypeId('styled_map');//地理json
google.maps.event.addListener(映射,'click',函数(){
infowindow.close();
});
//加载关联的GeoJSON
var url='1〕https://north-river.s3.us-east-2.amazonaws.com/Active.geojson';
var url2=https://north-river.s3.us-east-2.amazonaws.com/Pipelines.geojson'
var layer1=新的google.maps.Data();
layer1.loadGeoJson(url);
第1层设置样式(功能(特性){
return/**@type{!google.maps.Data.StyleOptions}*/({
图标:“http://maps.google.com/mapfiles/ms/micons/blue.png"
});
});
第1层:设置地图(地图);
var layer2=新的google.maps.Data();
layer2.loadGeoJson(url2);
第2层设置样式(功能(特性){
return/**@type{!google.maps.Data.StyleOptions}*/({
图标:“http://maps.google.com/mapfiles/ms/micons/green.png"
});
});
第2层。设置地图(地图);
//为每个功能设置事件侦听器。
函数handleclick(事件){
infowindow.setContent(
"" +
“+”名称:“+”+事件。功能。getProperty('Name')+“”+
“+”状态:“+”+事件.feature.getProperty('Status')+“+”+
“+”Lat\U DMS:“+”+事件.feature.getProperty('Lat\U DMS')+”+“”
);
infowindow.setPosition(event.latLng);
infowindow.setOptions({
pixelOffset:new google.maps.Size(0,-34)
});
打开(地图);
}
layer1.addListener('click',handleClicks);
layer2.addListener('click',handleClicks);
}
google.maps.event.addDomListener(窗口“加载”,初始化)
/*始终明确设置贴图高度以定义div的大小
*包含映射的元素*/
#map2{
身高:100%;
}
/*可选:使示例页面填充窗口*/
html,
身体{
身高:100%;
保证金:0;
填充:0;
}

这似乎可行,但不确定哪一个是更好的解决方案,但是使用此解决方案,我的信息窗口点击处理程序仍然有效

map.data.setStyle(function(feature) {
    var marker = feature.getProperty('Status');
    var markerCheck = marker === 'Active' ? 'https://cdn.mapmarker.io/api/v1/font-awesome/v5/pin?text=P&size=40&background=D94B43&color=FFF&hoffset=-1' : 'https://cdn.mapmarker.io/api/v1/font-awesome/v5/icon?icon=fa-star-solid&size=50&color=DC4C3F';
    var colorCheck = marker === 'Active' ? "#0000FF" : "#000000";
    return {
      icon: markerCheck,
      strokeColor: colorCheck
    };
  });