private void rebuildMarkers(GMapOverlay overlay, int size) { overlay.Markers.Clear(); GMapMarker[] markers = overlayDict[overlay.Id]; int count = markers.Length; MarkerTag tag = (MarkerTag)markers[0].Tag; tag.Size = size; int step = getStep(size); //tag.getBitmap().Dispose(); tag.setBitmap(); Bitmap bitmap = tag.getBitmap(); for (int i = 0; i < count - 1; i += step) { GMapMarker marker = markers[i]; GMapMarker newMarker = new GMarkerGoogle(marker.Position, bitmap); if (marker.Tag != null) { newMarker.Tag = marker.Tag; } overlay.Markers.Add(newMarker); } }
private GMapOverlay buildPhotoMarker(GMapOverlay overlay, MarkerTag tag, String name) { Bitmap bitmap = tag.getBitmap(); foreach (string filePath in mFiles) { try { Image image = new Bitmap(filePath); PropertyItem[] propItems = image.PropertyItems; PropertyItem propItemLatRef = image.GetPropertyItem(0x0001); PropertyItem propItemLat = image.GetPropertyItem(0x0002); PropertyItem propItemLonRef = image.GetPropertyItem(0x0003); PropertyItem propItemLon = image.GetPropertyItem(0x0004); image.Dispose(); byte[] latBytes = propItemLat.Value; byte[] latRefBytes = propItemLatRef.Value; byte[] lonBytes = propItemLon.Value; byte[] lonRefBytes = propItemLonRef.Value; string latitudeRef = ASCIIEncoding.UTF8.GetString(latRefBytes); string longitudeRef = ASCIIEncoding.UTF8.GetString(lonRefBytes); double latitude = byteToDegrees(latBytes); double longitude = byteToDegrees(lonBytes); if (latitudeRef.Equals("S\0")) { latitude = -latitude; } if (longitudeRef.Equals("W\0")) { longitude = -longitude; } GMapMarker marker = new GMarkerGoogle(new PointLatLng(latitude, longitude), bitmap); marker.Tag = tag; overlay.Markers.Add(marker); } catch (ArgumentException ex) { } catch (NullReferenceException ex) { txtConsole.AppendText(ex.StackTrace); } } txtConsole.AppendText("Photos ready.." + Environment.NewLine); return(overlay); }
private GMapOverlay buildMarker(GMapOverlay overlay, MarkerTag tag, String name) { Bitmap bitmap = tag.getBitmap(); if (mRecordDict != null) { foreach (KeyValuePair <string, Record> record in mRecordDict) { Double lat = record.Value.Latitude; Double lon = record.Value.Longitude; GMapMarker marker = new GMarkerGoogle(new PointLatLng(lat, lon), bitmap); marker.Tag = tag; overlay.Markers.Add(marker); //markerArray.Add(marker); } } //bitmap.Dispose(); return(overlay); }
private void photosToolStripMenuItem_Click(object sender, EventArgs e) { browseFolder(); GMapOverlay photoOverlay = new GMapOverlay("photos"); //Assembly assembly = Assembly.GetExecutingAssembly(); //Stream stream = assembly.GetManifestResourceStream(icon); //bmpPhoto = (Bitmap)Image.FromStream(stream); MarkerTag tag = new MarkerTag("ffff80ff", 4); tag.setBitmap(); photoOverlay = buildPhotoMarker(photoOverlay, tag, "photos"); gMap.Overlays.Add(photoOverlay); GMapMarker[] markers = photoOverlay.Markers.ToArray <GMapMarker>(); overlayDict.Add(photoOverlay.Id, markers); overlay = photoOverlay; ckBoxLayers.Items.Add(overlay.Id, true); photoOverlay.IsVisibile = true; overlay.IsVisibile = true; }
private void plotLayer() { txtConsole.Clear(); txtConsole.AppendText("Colour: " + mlayerColourHex.ToString()); txtConsole.AppendText("ColourName: " + mlayerColour.ToString()); GMapOverlay newOverlay = new GMapOverlay(mLayer); //string icon = ColorTable.ColorTableDict[mlayerColourHex]; MarkerTag tag = new MarkerTag(mlayerColourHex, 4); tag.setBitmap(); newOverlay = buildMarker(newOverlay, tag, mLayer); gMap.Overlays.Add(newOverlay); GMapMarker[] markers = newOverlay.Markers.ToArray <GMapMarker>(); overlayDict.Add(newOverlay.Id, markers); overlay = newOverlay; ckBoxLayers.Items.Add(overlay.Id, true); //Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(ColorTable.ColorTableDict[mlayerColourHex.ToString()] + "_24px.png"); //Bitmap bitmap = (Bitmap)Image.FromStream(stream); //imageList.Images.Add(bitmap); //ListViewItem layerItem = new ListViewItem(overlay.Id, layerCount); //layerCount++; ////layerItem.Text = overlay.Id; //layerItem.Checked = true; //listLayers.SmallImageList = imageList; //listLayers.Items.Add(layerItem); newOverlay.IsVisibile = true; overlay.IsVisibile = true; }