Привет, Stack Overflow people !!Изменение метки метки метки KML с помощью JavaScript
Я честно не знаю, есть ли способ сделать это, но я надеюсь, что есть, так как альтернатива еще сложнее, и я не уверен, как это сделать. На данный момент у меня есть плагин Google Планета Земля, работающий на странице с некоторыми другими элементами управления. На странице предполагается показать график с задержкой и данными для шума для модема, а также сетью с тоннами дополнительной информации, чтобы помочь моему интернет-провайдеру немного улучшить ситуацию, когда дело доходит до проблем с модемом.
Вопрос, который у меня есть: есть ли способ в JavaScript изменить цвет значка Google Earth без использования KML?
Я знаю, что вы можете сделать что-то подобное в KML
<Style id="normalPlacemark">
<IconStyle>
<color>ffffff00</color>
<scale>5</scale>
<Icon>
<href>http://maps.google.com/mapfiles/kml/pushpin/wht-pushpin.png</href>
</Icon>
</IconStyle>
</Style>
Но у меня были проблемы добавляя его в нужное место в общем XML с помощью C# или AddKMLFromString() в JavaScript (с которым я действительно незнакома), чтобы получить страницу, чтобы узнать ее.
Вот измененный код плагин я использую в данный момент:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
var ge;
google.load("earth", "1");
//Create an instance of the Earth
function init() {
google.earth.createInstance('gmap', initCallback, failureCallback);
}
function initCallback(pluginInstance) {
ge = pluginInstance;
ge.getWindow().setVisibility(true);
//URL for KML file which is taken directly from Google
//The KML in question is Google's giant file for weather data
var href = 'aurlwherewetherdatalives.kml';
//Use Google's fetch KML method to get the weather KML file and add it to our plugin's instance
google.earth.fetchKml(ge, href, function (kmlObject) {
if (kmlObject) {
ge.getFeatures().appendChild(kmlObject);
}
if (kmlObject.getAbstractView() !== null)
ge.getView().setAbstractView(kmlObject.getAbstractView());
});
//Turn on Country Borders, States, and Cities
ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true);
//By default, remoteExists uses True where JavaScript wants true
var jsRemoteExists = <%= remoteExists.ToString().ToLower() %>;
//If the remote exists, create a placemark and camera at its location using the
//the latitude and longitude variables retreived in the c#
if (jsRemoteExists)
{
//Variables have been created
var lat = <%= CSHARPLat %>;
var lon = <%= CSHARPLong %>;
ge.getWindow().setVisibility(true);
// Create the placemark and add it to Earth.
var placemark = ge.createPlacemark('');
// Set the placemark's location.
var point = ge.createPoint('');
point.setLatitude(lat);
point.setLongitude(lon);
placemark.setGeometry(point);
// Add the placemark to Earth.
ge.getFeatures().appendChild(placemark);
var la = ge.createLookAt('');
la.setLatitude(lat);
la.setLongitude(lon);
la.setRange(150000);
ge.getView().setAbstractView(la);
}
}
function failureCallback(errorCode) {
}
function addKmlFromString(kmlString) {
var kmlObject = ge.parseKml(kmlString);
ge.getFeatures().appendChild(kmlObject);
}
window.onload = init();
</script>
было бы лучше, чтобы найти добавить выше KML в строку в C# код позади, и найти подходящее место, чтобы просто добавить стиль? Я изливал API Google и пытаюсь добавить его в разных местах, и большую часть времени он просто ломается и не показывает данные о погоде или метку. Конечной целью является изменение цвета метки в зависимости от того, является ли пульт номинальным, тревожным или предупреждающим. Я посмотрел здесь и на Google ответы, но ничего не похоже на JS, и я не могу добавить KML правильно, чтобы изменить цвет меток. У кого-нибудь есть идеи?