/** * MapIconMaker v1.0 * Copyright (c) 2008 Pamela Fox * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * * Author: Pamela Fox * * This gives you static function(s) for creating dynamically sized and * colored marker icons using the Charts API marker output. */ var MapIconMaker = {}; MapIconMaker.createMarkerIcon = function(opts) { var width = opts.width || 32; var height = opts.height || 32; var primaryColor = opts.primaryColor || "#ff0000"; var strokeColor = opts.strokeColor || "#000000"; var cornerColor = opts.cornerColor || "#ffffff"; var baseUrl = "http://chart.apis.google.com/chart?cht=mm"; var iconUrl = baseUrl + "&chs=" + width + "x" + height + "&chco=" + cornerColor.replace("#", "") + "," + primaryColor.replace("#", "") + "," + strokeColor.replace("#", "") + "&ext=.png"; var vv = new google.maps.Size(width, height); var icon = new google.maps.MarkerImage(); icon.image = iconUrl; icon.iconSize = new google.maps.Size(width, height); icon.shadowSize = new google.maps.Size(Math.floor(width*1.6), height); icon.iconAnchor = new google.maps.Point(width/2, height); icon.infoWindowAnchor = new google.maps.Point(width/2, Math.floor(height/12)); icon.printImage = iconUrl + "&chof=gif"; icon.mozPrintImage = iconUrl + "&chf=bg,s,ECECD8" + "&chof=gif"; var iconUrl = baseUrl + "&chs=" + width + "x" + height + "&chco=" + cornerColor.replace("#", "") + "," + primaryColor.replace("#", "") + "," + strokeColor.replace("#", ""); icon.transparent = iconUrl + "&chf=a,s,ffffff11&ext=.png"; icon.imageMap = [ width/2, height, (7/16)*width, (5/8)*height, (5/16)*width, (7/16)*height, (7/32)*width, (5/16)*height, (5/16)*width, (1/8)*height, (1/2)*width, 0, (11/16)*width, (1/8)*height, (25/32)*width, (5/16)*height, (11/16)*width, (7/16)*height, (9/16)*width, (5/8)*height ]; for (var i = 0; i < icon.imageMap.length; i++) { icon.imageMap[i] = parseInt(icon.imageMap[i]); } icon.url = iconUrl; return icon; }