Reputation: 149
You Have edited script according to v2 i am getting this error on using that script pic attached on line 154
GEvent.addListener(window.polyline, 'click', function() {
window.polyline.setOptions(options: { strokeColor: 'blue' });
How can we change color of icon and polyline by click on running application? My code is as follows. It has no error. How can I do this?
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
namespace GoogleMap
{
// A sample project by Ghaffar khan
public partial class Map : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataSet1TableAdapters.LocationsTableAdapter da = new GoogleMap.DataSet1TableAdapters.LocationsTableAdapter();
DataSet1.LocationsDataTable table = new DataSet1.LocationsDataTable();
da.Fill(table);
BuildScript(table);
//GooglePolyline PL1 = new GooglePolyline();
}
private void BuildScript(DataTable tbl)
{
String Locations = "";
foreach (DataRow r in tbl.Rows)
{
// bypass empty rows
if (r["Latitude"].ToString().Trim().Length == 0)
continue;
string Latitude = r["Latitude"].ToString();
string Longitude = r["Longitude"].ToString();
// create a line of JavaScript for marker on map for this record
Locations += Environment.NewLine + " map.addOverlay(new GMarker(new GLatLng(" + Latitude + "," + Longitude + ")));";
}
// construct the final script
js.Text = @"<script type='text/javascript'>
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById('map_canvas'));
map.setCenter(new GLatLng(45.05,7.6667), 2);
map.openInfoWindowHtml ( new GLatLng(45.05,7.6667), 'Serif<br>Pakistan');
" + Locations + @"
map.setUIToDefault();
// Create an array with points
var points = [
new GLatLng(24.85229, 67.01703),
new GLatLng(24.914463, 67.0965958),
new GLatLng(24.86588, 67.06089),
new GLatLng(24.9726753, 67.06638),
new GLatLng(24.840023, 67.24285),
new GLatLng(24.85229, 67.01703)
];
// Create a new polyline
var polyline = new GPolyline(points, '#ff0000', 5, 0.7);
// Add the polyline to the map using map.addOverlay()
map.addOverlay(polyline);
var marker = new GMarker(new GLatLng(45.05,7.6667))
//
}
}
</script> ";
}
}
}
//////The Script According to GergL is,///////
js.Text = @"<script type='text/javascript'>
function initialize() {
if (GBrowserIsCompatible()) {
window.polyline = new GPolyline(points, '#ff0000', 5, 0.7);
var map = new GMap2(document.getElementById('map_canvas'));
map.setCenter(new GLatLng(45.05,7.6667), 2);
map.openInfoWindowHtml ( new GLatLng(45.05,7.6667), 'Serif<br>Pakistan');
" + Locations + @"
map.setUIToDefault();
google.maps.event.addListener(window.polyline, 'click', function() {
window.polyline.setOptions(options: { strokeColor: 'blue' });
});
// Create an array with points
var points = [
new GLatLng(24.85229, 67.01703),
new GLatLng(24.914463, 67.0965958),
new GLatLng(24.86588, 67.06089),
new GLatLng(24.9726753, 67.06638),
new GLatLng(24.840023, 67.24285),
new GLatLng(24.85229, 67.01703)
];
// Create a new polyline
var polyline = new GPolyline(points, '#ff0000', 5, 0.7);
// Add the polyline to the map using map.addOverlay()
map.addOverlay(polyline);
}
}
google.maps.event.addListener(window.polyline, 'click', function() {
window.polyline.setOptions(options: { strokeColor: 'blue' });
});
</script> ";
But i am getting error .. .Object Expected in line 47 in script where i use click method in that line hopes for your help !
You Have edited script according to v2 i am getting this error on using that script pic attached
Upvotes: 0
Views: 1765
Reputation: 38103
You need to assign your polyline
variable in the initialize()
function to a globally accessible variable, and then use the setOptions()
method on it to set the new colour in your click event handler (in javascript).
e.g. if you changed the line in initialise()
from this:
var polyline = new GPolyline(points, '#ff0000', 5, 0.7);
to this:
window.polyline = new GPolyline(points, '#ff0000', 5, 0.7);
And then wanted to have it change to blue when clicked, you would add code like:
GEvent.addListener(window.polyline, 'click', function() {
window.polyline.setOptions(options: { strokeColor: 'blue' });
});
I haven't tested this, btw. But it should help you get on the right track.
EDIT: Here is what I think your script should be:
EDIT 2: Updated to work with API v2, though be aware Google strongly encourages you to migrate to the new V3 on both the V2 documentation page and the V3 documentation page.
js.Text = @"<script type='text/javascript'>
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById('map_canvas'));
map.setCenter(new GLatLng(45.05,7.6667), 2);
map.openInfoWindowHtml ( new GLatLng(45.05,7.6667), 'Serif<br>Pakistan');
" + Locations + @"
map.setUIToDefault();
// Create an array with points
var points = [
new GLatLng(24.85229, 67.01703),
new GLatLng(24.914463, 67.0965958),
new GLatLng(24.86588, 67.06089),
new GLatLng(24.9726753, 67.06638),
new GLatLng(24.840023, 67.24285),
new GLatLng(24.85229, 67.01703)
];
// Create a new polyline
window.polyline = new GPolyline(points, '#ff0000', 5, 0.7);
GEvent.addListener(window.polyline, 'click', function() {
window.polyline.setOptions(options: { strokeColor: 'blue' });
});
// Add the polyline to the map using map.addOverlay()
map.addOverlay(window.polyline);
}
}
</script> ";
Upvotes: 1