Javascript 使用google maps api根据数据中的值使用不同颜色的圆圈

Javascript 使用google maps api根据数据中的值使用不同颜色的圆圈,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我正在从csv文件中读取地名,并使用谷歌地图api进行地理编码。我使用圆形图标而不是默认的红色标记。现在我想知道这些圆圈图标是否可以根据使用谷歌地图api的csv数据中的值以不同的颜色显示 对于ex,我将获得区域名称的json响应,平均值为 $.getJSON(json_link, function (data) { //console.log(data)

我正在从csv文件中读取地名,并使用谷歌地图api进行地理编码。我使用圆形图标而不是默认的红色标记。现在我想知道这些圆圈图标是否可以根据使用谷歌地图api的csv数据中的值以不同的颜色显示

对于ex,我将获得区域名称的json响应,平均值为

$.getJSON(json_link,
                            function (data) {
                                //console.log(data)
                                // response(data);
                                var place_names = [];
                                var average_value = [];
                                for (i=0; i<data.rows.length; i++) {
                                    unique = data.rows[i].region_name;
                                    place_names.push(unique);
                                }
                                for (i=0; i<data.rows.length; i++) {
                                    average_values = data.rows[i].average;
                                    average_value.push(average_values);
                                }
                                console.log(place_names);
                                console.log(average_value);
$.getJSON(json_链接,
功能(数据){
//console.log(数据)
//答复(数据);
var place_names=[];
var平均值=[];

对于(i=0;i你可以使用这样的东西

     var address = place_names;
     var average =  average_value;
     var color = '#F00';
                            console.log(address);

                            for (i=0; i<=address.length; i++) {

                                 if (average[i] >  your_lower_limit && average[i] < you_upper_limit) {
                                    color = '#0F0';
                                 }
                                // repeat for other limit and color 
                                geocoder.geocode({'address': address[i]}, function(results, status) {
                                    if (status === google.maps.GeocoderStatus.OK) {
                                        map.setCenter(results[0].geometry.location);
                                        var marker = new google.maps.Marker({
                                            position: results[0].geometry.location,
                                            icon: {
                                                path: google.maps.SymbolPath.CIRCLE,
                                                scale: 10,
                                                fillColor: color,
                                                fillOpacity: 0.4,
                                                strokeWeight: 0.4
                                            },
                                            map: map
                                        });
var地址=地名;
var平均值=平均值;
var color='#F00';
控制台日志(地址);
对于(i=0;i您的下限和平均值[i]<您的上限){
颜色='#0F0';
}
//对其他限制和颜色重复此操作
geocoder.geocode({'address':address[i]},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
map.setCenter(结果[0].geometry.location);
var marker=new google.maps.marker({
位置:结果[0]。geometry.location,
图标:{
路径:google.maps.SymbolPath.CIRCLE,
比例:10,
fillColor:color,
填充不透明度:0.4,
冲程重量:0.4
},
地图:地图
});

您的代码中存在语法错误,导致其运行超过数组的末尾:

for (i = 0; i <= address.length; i++) {

代码片段:

var place_names=[“纽约州纽约”、“新泽西州纽瓦克”、“马萨诸塞州波士顿”、“马里兰州巴尔的摩”];
var平均_值=[5,40,20,60];
var bounds=new google.maps.LatLngBounds();
函数初始化(){
var map=new google.maps.map(
document.getElementById(“地图画布”){
中心:新google.maps.LatLng(37.4419,-122.1419),
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var geocoder=new google.maps.geocoder();
var地址=地名;
var平均值=平均值;
var color='蓝色';
控制台日志(地址);
对于(i=0;i0和平均[i]<30){
颜色=红色;
}否则{
颜色='绿色';
}
地理编码(地址[i]、颜色、地理编码器、地图);
}
}
google.maps.event.addDomListener(窗口“加载”,初始化);
功能地理编码(地址、颜色、地理编码器、地图){
地理编码({
“地址”:地址
},功能(结果、状态){
if(status==google.maps.GeocoderStatus.OK){
map.setCenter(结果[0].geometry.location);
extend(结果[0].geometry.location);
var marker=new google.maps.marker({
位置:结果[0]。geometry.location,
图标:{
路径:google.maps.SymbolPath.CIRCLE,
比例:10,
fillColor:color,
填充不透明度:0.5,
冲程重量:1
},
地图:地图
});
映射边界(bounds);
}否则{
警报('地理编码因以下原因未成功:'+状态);
}
});
}
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}


我已根据确切要求编辑了我的问题。我已尝试使用上述代码,甚至我已编辑了我尝试使用的代码。但颜色不会改变。绘制圆需要坐标(lat,lng)对于中心,半径和颜色需要映射到颜色的值…也显示此信息…请…好吧,使用google.maps.SymbolPath.CIRCLE不可能吗?是的,是可能的,但与每个圆的中心坐标和颜色相关的问题仍然相同…它不是圆。我正在创建一个标记,只是在更改使用google.maps.SymbolPath.circle将标记的图标单独添加到一个圆圈中。我也添加了我的地理编码代码供您参考。
for (i = 0; i <= address.length; i++) {
for (i = 0; i < address.length; i++) {
function geocode(address, color, geocoder, map) {
    geocoder.geocode({
        'address': address
    }, function (results, status) {
        if (status === google.maps.GeocoderStatus.OK) {
            map.setCenter(results[0].geometry.location);
            bounds.extend(results[0].geometry.location);
            var marker = new google.maps.Marker({
                position: results[0].geometry.location,
                icon: {
                    path: google.maps.SymbolPath.CIRCLE,
                    scale: 10,
                    fillColor: color,
                    fillOpacity: 0.5,
                    strokeWeight: 1
                },
                map: map
            });
            map.fitBounds(bounds);

        } else {
            alert('Geocode was not successful for the following reason: ' + status);
        }
    });
}