private static IPictureMarkerSymbol MakeMarkerSymbol(string renderPath, string icon, int size, int display, bool isVector) { esriIPictureType picType = (isVector) ? esriIPictureType.esriIPictureEMF : esriIPictureType.esriIPicturePNG; string extrafileName = (display == 2) ? "@2x" : ""; string suffix = (picType == esriIPictureType.esriIPictureEMF) ? ".emf" : ".png"; IPictureMarkerSymbol pictureMarkerSymbol = new PictureMarkerSymbolClass(); pictureMarkerSymbol.CreateMarkerSymbolFromFile(picType, renderPath + "\\" + icon + "-" + size + extrafileName + suffix); pictureMarkerSymbol.Size = (((Double)size / 96.0) * 72.0); //so it is 1to1 at 96 dpi or twize that for retina return(pictureMarkerSymbol); }
private static IPictureMarkerSymbol MakeMarkerSymbol(string filePath, double size) { if (!System.IO.File.Exists(filePath)) { Console.WriteLine("Source MarkerSymbol does NOT exist: " + filePath); return(null); } bool isVector = (filePath.Substring(filePath.Length - 4) == ".emf"); esriIPictureType picType = (isVector) ? esriIPictureType.esriIPictureEMF : esriIPictureType.esriIPicturePNG; IPictureMarkerSymbol pictureMarkerSymbol = new PictureMarkerSymbolClass(); pictureMarkerSymbol.CreateMarkerSymbolFromFile(picType, filePath); pictureMarkerSymbol.Size = size; return(pictureMarkerSymbol); }
/// <summary> /// 设置图片类型 /// </summary> /// <param name="url"></param> private void SetPictureType(string url) { int index = url.LastIndexOf('.'); int count = url.Length - 1 - index; string picType = url.Substring(index + 1, count).ToLower(); switch (picType) { case "bmp": pictureMarkerSymbol.CreateMarkerSymbolFromFile(esriIPictureType.esriIPictureBitmap, url); pictureType = esriIPictureType.esriIPictureBitmap; break; case "emf": pictureMarkerSymbol.CreateMarkerSymbolFromFile(esriIPictureType.esriIPictureEMF, url); pictureType = esriIPictureType.esriIPictureEMF; break; case "gif": pictureMarkerSymbol.CreateMarkerSymbolFromFile(esriIPictureType.esriIPictureGIF, url); pictureType = esriIPictureType.esriIPictureGIF; break; case "jpg": pictureMarkerSymbol.CreateMarkerSymbolFromFile(esriIPictureType.esriIPictureJPG, url); pictureType = esriIPictureType.esriIPictureJPG; break; case "jpeg": pictureMarkerSymbol.CreateMarkerSymbolFromFile(esriIPictureType.esriIPictureJPG, url); pictureType = esriIPictureType.esriIPictureJPG; break; case "png": pictureMarkerSymbol.CreateMarkerSymbolFromFile(esriIPictureType.esriIPicturePNG, url); pictureType = esriIPictureType.esriIPicturePNG; break; } }