2013-05-03 2 views
2

Мне нужна помощь в изменении цветов для каждого слоя KML и/или случайных цветов, которые сценарий ниже для Google Maps Api. Я приложил весь сценарий ниже. Я хотел бы знать, как изменить заливку и границу для каждого многоугольника, а также генерировать случайные цвета. Это динамический SQL-скрипт. Любая помощь будет очень признательна. Благодарю.Изменение цвета слоя KML для Карт Google для каждого слоя

enter code here 
<!DOCTYPE html> 
<html> 
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" /> 
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
function createCookie(name,value,days) { 
if (days) { 
var date = new Date(); 
date.setTime(date.getTime()+(days*24*60*60*1000)); 
var expires = "; expires="+date.toGMTString(); 
} 
else var expires = ""; 
document.cookie = name+"="+value+expires+"; path=/"; 
} 
function readCookie(name) { 
var nameEQ = name + "="; 
var ca = document.cookie.split(';'); 
for(var i=0;i < ca.length;i++) { 
var c = ca[i]; 
while (c.charAt(0)==' ') c = c.substring(1,c.length); 
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 
} 
return null; 
} 
function eraseCookie(name) { 
createCookie(name,"",-1); 
} 
function initialize() { 
var soil = new google.maps.LatLng(41.875696,-87.624207); 
var myOptions = { 
zoom: 7, 
center: new google.maps.LatLng(36.4098320, -85.2748718), 
mapTypeId: google.maps.MapTypeId.TERRAIN 
} 
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
layerl0 = new google.maps.FusionTablesLayer({ 
query: { 
select: "'col2'", 
from: '1-nKJJErStEiMLY52mxzBxhjizorvs5ZXDJXu_IA' 
}, 
map: map, 
styleId: 1, 
templateId: 1 
}); 
var 
ctaLayer = new  google.maps.KmlLayer('http://casoilresource.lawr.ucdavis.edu/soil_web/export.php? format=kmz&srid=4326&mukey_query=527031&BBOX=1,1,1,1', {preserveViewport:false});ctaLayer.setMap(map); 
ctaLayer = new google.maps.KmlLayer('http://casoilresource.lawr.ucdavis.edu/soil_web/export.php? format=kmz&srid=4326&mukey_query=527128&BBOX=1,1,1,1', {preserveViewport:false});ctaLayer.setMap(map); 
ctaLayer = new google.maps.KmlLayer('http://casoilresource.lawr.ucdavis.edu/soil_web/export.php? format=kmz&srid=4326&mukey_query=527489&BBOX=1,1,1,1', {preserveViewport:false});ctaLayer.setMap(map); 
ctaLayer = new google.maps.KmlLayer('http://casoilresource.lawr.ucdavis.edu/soil_web/export.php? format=kmz&srid=4326&mukey_query=527504&BBOX=1,1,1,1', {preserveViewport:false});ctaLayer.setMap(map); 
ctaLayer = new google.maps.KmlLayer('http://casoilresource.lawr.ucdavis.edu/soil_web/export.php? format=kmz&srid=4326&mukey_query=527505&BBOX=1,1,1,1', {preserveViewport:false});ctaLayer.setMap(map); 
ctaLayer = new google.maps.KmlLayer('http://casoilresource.lawr.ucdavis.edu/soil_web/export.php? format=kmz&srid=4326&mukey_query=527560&BBOX=1,1,1,1', {preserveViewport:false});ctaLayer.setMap(map); 
ctaLayer = new google.maps.KmlLayer('http://casoilresource.lawr.ucdavis.edu/soil_web/export.php? format=kmz&srid=4326&mukey_query=528148&BBOX=1,1,1,1', {preserveViewport:false});ctaLayer.setMap(map); 
ctaLayer = new google.maps.KmlLayer('http://casoilresource.lawr.ucdavis.edu/soil_web/export.php? format=kmz&srid=4326&mukey_query=529859&BBOX=1,1,1,1', {preserveViewport:false});ctaLayer.setMap(map); 
ctaLayer = new google.maps.KmlLayer('http://casoilresource.lawr.ucdavis.edu/soil_web/export.php? format=kmz&srid=4326&mukey_query=2396878&BBOX=1,1,1,1', {preserveViewport:false});ctaLayer.setMap(map); 
} 
</script> 
</head> 
<body onload="initialize()"> 
<div id="map_canvas" style="width: 600px; height: 450px;"></div> 
</body> 
</html> 
+0

Почему этот вопрос помечен как «java»? – geocodezip

ответ

3

Вы не можете изменить цвета полигонов в KmlLayer с помощью API Карт Google v3. Вы можете изменить созданный KML для установки цветов.

См KML Reference

example of multiple KML files with geoxml3

example of changing colors (highlighting) with geoxml3

+0

Спасибо, но я искал, чтобы переопределить цвета слоя, а не сами полигоны. Должен быть способ переопределить внешний слой слоя KML? – user2348568

+0

Не с KmlLayer (по крайней мере в настоящее время). Если вы импортируете KML в FusionTables, вы можете изменить его в FusionTablesLayer. Если вы используете сторонний анализатор KML (например, [geoxml3] (http://code.google.com/p/geoxml3/)), который отображает KML в качестве собственных объектов Google Maps API v3, вы можете изменить их свойства, но для сложных KML могут возникнуть проблемы с производительностью. – geocodezip

+0

Спасибо. Похоже, мне нужно использовать стороннюю сторону, так как данные динамичны и слишком велики для таблиц слияния. Как мне написать geoxml3? – user2348568

1

Вы можете использовать geoxml3 для изменения Kml цвета. Вот ссылка на это. see this example

+0

Он говорит, что страница не найдена по ссылке – user2348568

+0

Спасибо, мне нужна помощь в изменении моего сценария выше использовать geoxml3. Пример хорош, но не уверен, как его записать. – user2348568

+0

Может кто-нибудь дать мне пример, как добавить третьего лица, спасибо – user2348568

Смежные вопросы