У вас есть два варианта.
function createMarker(latLng, mag) {
var low = [151, 83, 34]; // color of mag 1.0
var high = [5, 69, 54]; // color of mag 6.0 and above
var minMag = 1.0;
var maxMag = 6.0;
// fraction represents where the value sits between the min and max
var fraction = (Math.min(mag, maxMag) - minMag) /
(maxMag - minMag);
var color = interpolateHsl(low, high, fraction);
var marker = new google.maps.Marker({
position: latLng,
icon: {
path: google.maps.SymbolPath.CIRCLE,
strokeWeight: 0.5,
strokeColor: '#fff',
fillColor: color,
fillOpacity: 2 / mag,
// while an exponent would technically be correct, quadratic looks nicer
scale: mag
},
zIndex: Math.floor(mag),
map: map
});
return marker;
}
подтверждение концепции скрипта [ 1118]
map.data.add({
geometry: new google.maps.Data.Point({
lat: 20,
lng: -160
}),
properties: {
mag: 2
}
});
Тогда он будет стилизован как все остальные
доказательство концепции скрипки
фрагмент кода:
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {
lat: 20,
lng: -160
},
zoom: 2,
styles: mapStyle
});
map.data.add({
geometry: new google.maps.Data.Point({
lat: 20,
lng: -160
}),
properties: {
mag: 2
}
});
map.data.setStyle(styleFeature);
// Get the earthquake data (JSONP format)
// This feed is a copy from the USGS feed, you can find the originals here:
// http://earthquake.usgs.gov/earthquakes/feed/v1.0/geojson.php
var script = document.createElement('script');
script.setAttribute(
'src',
'https://storage.googleapis.com/mapsdevsite/json/quakes.geo.json');
document.getElementsByTagName('head')[0].appendChild(script);
}
// Defines the callback function referenced in the jsonp file.
function eqfeed_callback(data) {
map.data.addGeoJson(data);
}
function styleFeature(feature) {
var low = [151, 83, 34]; // color of mag 1.0
var high = [5, 69, 54]; // color of mag 6.0 and above
var minMag = 1.0;
var maxMag = 6.0;
// fraction represents where the value sits between the min and max
var fraction = (Math.min(feature.getProperty('mag'), maxMag) - minMag) /
(maxMag - minMag);
var color = interpolateHsl(low, high, fraction);
return {
icon: {
path: google.maps.SymbolPath.CIRCLE,
strokeWeight: 0.5,
strokeColor: '#fff',
fillColor: color,
fillOpacity: 2 / feature.getProperty('mag'),
// while an exponent would technically be correct, quadratic looks nicer
scale: Math.pow(feature.getProperty('mag'), 2)
},
zIndex: Math.floor(feature.getProperty('mag'))
};
}
function interpolateHsl(lowHsl, highHsl, fraction) {
var color = [];
for (var i = 0; i < 3; i++) {
// Calculate color based on the fraction.
color[i] = (highHsl[i] - lowHsl[i]) * fraction + lowHsl[i];
}
return 'hsl(' + color[0] + ',' + color[1] + '%,' + color[2] + '%)';
}
var mapStyle = [{
'featureType': 'all',
'elementType': 'all',
'stylers': [{
'visibility': 'off'
}]
}, {
'featureType': 'landscape',
'elementType': 'geometry',
'stylers': [{
'visibility': 'on'
}, {
'color': '#fcfcfc'
}]
}, {
'featureType': 'water',
'elementType': 'labels',
'stylers': [{
'visibility': 'off'
}]
}, {
'featureType': 'water',
'elementType': 'geometry',
'stylers': [{
'visibility': 'on'
}, {
'hue': '#5f94ff'
}, {
'lightness': 60
}]
}];
html,
body,
#map {
height: 100%;
margin: 0;
padding: 0;
}
[ 1124]
Я нашел решение этой проблемы, которая следовала из моей собственной глупости во-первых. Все это стало ясным мне, как только я генерировал hbm файлы от быстрого отображения NH.
<class name="CatalogItem" table="`CatalogItem`" xmlns="urn:nhibernate-
mapping-2.2" optimistic-lock="version">
...
<property name="Name" length="100" type="String">
<column name="Name" />
</property>
...
<component name="Manufacturer" insert="false" update="true">
<property name="Name" length="100" type="String">
<column name="Name" />
</property>
</component>
</class>
Заметьте, что столбец для свойства Name и столбец для компонента Производителя оба отображаются на том же столбце. Вот почему это закончилось в ArgumentOutOfRangeException, потому что было больше аргументов, чем были имена столбцов. Я решил это explicitely определение имени столбца для отображения компонента:
Компонент (catalogItem => catalogItem. Производитель, m => m. Карта (производитель => производитель. Имя, "Производитель"));
Другой урок извлечен.
Да, я удалил тот для сокращения части шума. Я предполагаю, что забыл удалять его из отображения также. После выполнения еще некоторого расследования я заметил, что оно имеет некоторое отношение к Производителю, отображаемому как компонент. Когда я использовал простую строку вместо отдельного класса, все хорошо работает.
Ваш CatalogItem
кажется, не имеет a Price
свойство, которое кажется нечетным, когда Вы используете Reveal
помощник.